<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="https://zenofx.com/assets/xslt/rss.xslt" ?>
<?xml-stylesheet type="text/css" href="https://zenofx.com/assets/css/rss.css" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>zenofx.com</title>
		<description>zenofx.com offers security solutions for the Java Platform. Our team has more than 20 years of knowledge in Java programming and encryption technologies. We develop network solutions for the Android platform since 2009.</description>
		<link>https://zenofx.com/</link>
		<atom:link href="https://zenofx.com/feed.xml" rel="self" type="application/rss+xml" />
		
			<item>
				<title>Docker IPv6 support</title>
				<link>https://zenofx.com/snippets/docker/docker-ipv6/</link>
				<pubDate>Sat, 10 Sep 2022 00:00:00 +0000</pubDate>
				<description>&lt;p&gt;Our non-public infrastructure is (mostly) IPv6 only. Therefore, we need outgoing&lt;a href=&quot;#asterisk&quot;&gt;*&lt;/a&gt; IPv6 support on our Docker based Gitlab runners.
Complete IPv6 support is out of scope of this snippet – a more complete answer may be found on 
&lt;a href=&quot;https://www.ecency.com/docker/@csgeekdev/docker-ipv6-guide&quot;&gt;Docker IPV6 Guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Simply follow these steps:&lt;/p&gt;

&lt;h3 id=&quot;enable-ipv6&quot;&gt;Enable IPv6&lt;/h3&gt;

&lt;p&gt;Edit &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/docker/daemon.json&lt;/code&gt; on the Docker host&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;ipv6&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;fixed-cidr-v6&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;fd00::/80&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;and restart the daemon, e.g.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;service docker restart&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;enable-outgoing-traffic-using-nat&quot;&gt;Enable outgoing traffic using NAT&lt;/h3&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;ip6tables &lt;span class=&quot;nt&quot;&gt;-t&lt;/span&gt; nat &lt;span class=&quot;nt&quot;&gt;-A&lt;/span&gt; POSTROUTING &lt;span class=&quot;nt&quot;&gt;-s&lt;/span&gt; fd00::/80 &lt;span class=&quot;o&quot;&gt;!&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-o&lt;/span&gt; docker0 &lt;span class=&quot;nt&quot;&gt;-j&lt;/span&gt; MASQUERADE&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;test-outgoing-traffic-from-a-docker-guest&quot;&gt;Test outgoing traffic from a Docker guest&lt;/h3&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;docker run &lt;span class=&quot;nt&quot;&gt;--rm&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-t&lt;/span&gt; busybox ping6 ipv6.google.com&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;make-changes-permanent&quot;&gt;Make changes permanent&lt;/h3&gt;
&lt;p&gt;This obviously depends on your distribution. For Debian/Ubuntu based distributions, we edit
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/systemd/system/multi-user.target.wants/docker.service&lt;/code&gt;:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nv&quot;&gt;ExecStartPre&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;ip6tables &lt;span class=&quot;nt&quot;&gt;-t&lt;/span&gt; nat &lt;span class=&quot;nt&quot;&gt;-A&lt;/span&gt; POSTROUTING &lt;span class=&quot;nt&quot;&gt;-s&lt;/span&gt; fd00::/80 &lt;span class=&quot;o&quot;&gt;!&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-o&lt;/span&gt; docker0 &lt;span class=&quot;nt&quot;&gt;-j&lt;/span&gt; MASQUERADE&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;For this to test, you need to reboot your system.&lt;/p&gt;
&lt;div id=&quot;asterisk&quot; style=&quot;font-style: italic;&quot;&gt;
* IP always needs to work in both directions. &quot;Outgoing&quot; means our Docker guests contact IPv6 only servers, but are not accessible via IPv6.
&lt;/div&gt;
</description>
				<guid isPermaLink="true">https://zenofx.com/snippets/docker/docker-ipv6/</guid>
			</item>
		
			<item>
				<title>Android ant support</title>
				<link>https://zenofx.com/snippets/android/build-android-apps-with-ant/</link>
				<pubDate>Tue, 23 Aug 2022 00:00:00 +0000</pubDate>
				<description>&lt;p&gt;There are legitimate reasons to still build Android apps using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ant&lt;/code&gt;. 
First of all, you may be responsible for supporting a legacy project with very limited new development.
Migrating such a project to AndroidStudio and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gradle&lt;/code&gt; may require more effort than you can spare
(especially as you’d also have to migrate the project structure).&lt;/p&gt;

&lt;p&gt;However, there are a few quirks that you have to keep in mind. The following setup works for us:&lt;/p&gt;

&lt;h3 id=&quot;platform-setup&quot;&gt;Platform setup&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Tools 25.2.5&lt;/em&gt; seem to be the last version with ant support. We’re using &lt;em&gt;build-tools 25.0.3&lt;/em&gt;, 
but more modern versions also should work. 
For installing the current Android target 31 you’ll &lt;strong&gt;have to&lt;/strong&gt; use the sdkmanager from tools dir,
otherwise you’ll get a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;target not found&lt;/code&gt; error.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;sdkmanager &lt;span class=&quot;nt&quot;&gt;--install&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;platform-tools&quot;&lt;/span&gt;
sdkmanager &lt;span class=&quot;nt&quot;&gt;--install&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;tools;25.2.5&quot;&lt;/span&gt;       
sdkmanager &lt;span class=&quot;nt&quot;&gt;--install&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;build-tools;25.0.3&quot;&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;ANDROID_TARGET&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;^target=&quot;&lt;/span&gt; project.properties |cut &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;=&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; 2&lt;span class=&quot;si&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;ANDROID_HOME&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;/tools/bin/sdkmanager &lt;span class=&quot;s2&quot;&gt;&quot;platforms;&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;ANDROID_TARGET&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;To enforce the use of build-tools 25.0.3, you can put the following line in your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;project.properties&lt;/code&gt; file:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-properties&quot; data-lang=&quot;properties&quot;&gt;&lt;span class=&quot;py&quot;&gt;sdk.buildtools&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;25.0.3&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;use-patched-buildxml&quot;&gt;Use patched build.xml&lt;/h3&gt;
&lt;p&gt;The build.xml file from the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;${ANDROID_HOME}/tools/ant&lt;/code&gt; dir does not work anymore for modern targets. 
Especially, the code signing process has to be adapted. You can use our patched
&lt;a href=&quot;https://download.zenofx.com/snippets/build-android-sdk.xml&quot;&gt;build-android-sdk.xml&lt;/a&gt;. 
This file has to be referenced from your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;build.xml&lt;/code&gt; file (near the end of the file) like this:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;import&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;file=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;/path/to/build-android-sdk.xml&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;call-ant&quot;&gt;Call ant&lt;/h3&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;ant clean debug lint     &lt;span class=&quot;c&quot;&gt;# Debug build, lint&lt;/span&gt;
ant clean release        &lt;span class=&quot;c&quot;&gt;# Signed release build&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;limited-eclipse-support&quot;&gt;(Limited) Eclipse support&lt;/h3&gt;
&lt;p&gt;Support for Eclipse using &lt;a href=&quot;https://marketplace.eclipse.org/content/andmore-development-tools-android%E2%84%A2&quot;&gt;Andmore&lt;/a&gt;
from Eclipse Marketplace seems to be abandoned. Currently we can’t recommend this approach.&lt;/p&gt;

&lt;p&gt;However, some of our developers use a configuration which allows at least editing Android apps within Eclipse.
For this, you have to patch &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;org.eclipse.andmore.base_0.5.1.201701251432.jar&lt;/code&gt; with some classes from an ancient Oracle Java 8 release.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;jar xvf rt.jar sun/misc/BASE64Decoder.class sun/misc/BASE64Encoder.class sun/misc/CharacterDecoder.class sun/misc/CharacterEncoder.class
jar uvf &amp;lt;path/to/org.eclipse.andmore.base_0.5.1.201701251432.jar&amp;gt; sun/misc&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Where &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;org.eclipse.andmore.base_0.5.1.201701251432.jar&lt;/code&gt; is found, depends on your installation – usually either in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Eclipse/plugins&lt;/code&gt; or in your home dir in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.p2/pool/plugins&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You’ll still get an ugly error when compiling files (“Errors occurred during the build.”). To avoid this, you can check&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Skip packaging and dexing until export or launch&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;in Eclipse Android preferences. 
Probably you can even restore packaging and dexing by including crypto classes from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sun.misc&lt;/code&gt;, but this is beyond the scope of this snippet.&lt;/p&gt;
</description>
				<guid isPermaLink="true">https://zenofx.com/snippets/android/build-android-apps-with-ant/</guid>
			</item>
		
			<item>
				<title>Atlassian Marketplace Publishing</title>
				<link>https://zenofx.com/snippets/atlassian/atlassian-marketplace-publisher/</link>
				<pubDate>Thu, 18 Apr 2019 00:00:00 +0000</pubDate>
				<description>&lt;p&gt;Our complete deployment process is driven by Gitlab CI/CD (before that, we were using Jenkins).
Plugins for the Atlassian Marketplace used to be an exception for several years.
Annoyed by this situation, we decided to develop a Maven plugin which integrates smoothly into
Atlassian’s plugin build process and allows an easy deployment to the Marketplace. 
However, for us the last submission step (switching the version from “Private” to “Public”) remains manual.&lt;/p&gt;

&lt;p&gt;The plugin is based on Atlassian’s 
&lt;a href=&quot;https://developer.atlassian.com/platform/marketplace/marketplace-api-java-client/&quot;&gt;Marketplace API Java client&lt;/a&gt;.
Source code for the plugin is availabe on &lt;a href=&quot;https://bitbucket.org/zenofx/marketplacepublisher&quot;&gt;Bitbucket&lt;/a&gt; under GPLv3.&lt;/p&gt;

&lt;h3 id=&quot;integration&quot;&gt;Integration&lt;/h3&gt;
&lt;p&gt;Insert into your pom.xml’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;plugins&amp;gt;&lt;/code&gt; section:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;plugins&amp;gt;&lt;/span&gt;
  ...
  &lt;span class=&quot;c&quot;&gt;&amp;lt;!-- Marketplace deployer --&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;com.zenofx.maven&lt;span class=&quot;nt&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;marketplace-maven-plugin&lt;span class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;username&amp;gt;&lt;/span&gt;user@example.com&lt;span class=&quot;nt&quot;&gt;&amp;lt;/username&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;password&amp;gt;&lt;/span&gt;{token encrypted by mvn -ep}&lt;span class=&quot;nt&quot;&gt;&amp;lt;/password&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;licenseType&amp;gt;&lt;/span&gt;GPL&lt;span class=&quot;nt&quot;&gt;&amp;lt;/licenseType&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;paymentModel&amp;gt;&lt;/span&gt;FREE&lt;span class=&quot;nt&quot;&gt;&amp;lt;/paymentModel&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;releaseSummary&amp;gt;&lt;/span&gt;Summary&lt;span class=&quot;nt&quot;&gt;&amp;lt;/releaseSummary&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;executions&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;execution&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;goals&amp;gt;&lt;/span&gt;
          &lt;span class=&quot;nt&quot;&gt;&amp;lt;goal&amp;gt;&lt;/span&gt;createVersion&lt;span class=&quot;nt&quot;&gt;&amp;lt;/goal&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;/goals&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;/execution&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/executions&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;&amp;lt;!-- Switch off default deployer --&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;maven-deploy-plugin&lt;span class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;skip&amp;gt;&lt;/span&gt;true&lt;span class=&quot;nt&quot;&gt;&amp;lt;/skip&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/plugins&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;usage&quot;&gt;Usage&lt;/h3&gt;
&lt;p&gt;After integrating into your pom, an additional target &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;deploy&lt;/code&gt; is available:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;atlas-mvn clean deploy&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;supported-configuration-properties&quot;&gt;Supported configuration properties&lt;/h3&gt;
&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;username&lt;/code&gt;
  Username for Atlassian Marketplace.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;password&lt;/code&gt;
  Token for Atlassian Marketplace (passwords are not supported any more). The token has to be encrypted using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;atlas-mvn -ep&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;buildNumber&lt;/code&gt;
  Build number, if not set computed from semantic version.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;buildPattern&lt;/code&gt; (Default: %1d%03d%03d)
  Pattern for computing build number from semantic version. 
  Default value according to Atlassian versioning proposals.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;licenseType&lt;/code&gt;
  License type (COMMERCIAL, COMMERCIAL_FREE, BSD, ASL, GPL, LGPL, EPL or ATLASSIAN_CLOSED_SOURCE).&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;paymentModel&lt;/code&gt;
  Payment Model (FREE, PAID_VIA_VENDOR or PAID_VIA_ATLASSIAN).&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;releaseNotes&lt;/code&gt;
  Release notes.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;releaseSummary&lt;/code&gt;
  Release summary.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;status&lt;/code&gt; (Default: PRIVATE)
  Status of version after upload (PRIVATE, PUBLIC or SUBMITTED). 
  This is only for completeness, please always use PRIVATE and submit manually.&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;supported&lt;/code&gt; (Default: true)
  Is this version supported?&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;beta&lt;/code&gt; (Default: false)
  Is this a beta version?&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;type&lt;/code&gt; (Default: JAR)
  Type of artifact (JAR or OBR).&lt;/p&gt;
</description>
				<guid isPermaLink="true">https://zenofx.com/snippets/atlassian/atlassian-marketplace-publisher/</guid>
			</item>
		
	</channel>
</rss>
