<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:27:59 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[ODLPARENT-235] Add parent for static features</title>
                <link>https://jira.opendaylight.org/browse/ODLPARENT-235</link>
                <project id="10149" key="ODLPARENT">odlparent</project>
                    <description>&lt;p&gt;Completely generated features have a number of downsides:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;they require a template to use version ranges, for example for MRI projects&lt;/li&gt;
	&lt;li&gt;they end up over-including things, hence they typically never catch anything at compile-time&lt;/li&gt;
	&lt;li&gt;more advanced features of feature.xml are simply not available, as they are not expressible in pom.xml&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;At the end of the day, we are getting to a point where most features have a template anyway. Rather than battling this reality, we should embrace it and take one step back &#8211; i.e. use a feature.xml template with version expansion based on pom.xml and test that. We &lt;a href=&quot;https://github.com/opendaylight/odlparent/blob/9e9e92958ed1b9bf47996d23f90bc019928c822c/features-parent/pom.xml#L75&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;used to have this&lt;/a&gt; in Karaf 3, so this is nothing new.&lt;/p&gt;

&lt;p&gt;We need to create a plugin which will perform the appropriate transformation &#8211; this can be XSLT or pretty much anything &#8211; the template is an XML, where we are going to perform a rather trivial substitution:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;we match only &amp;lt;bundle/&amp;gt; tags which contain a maven coordinate (starting with mvn: or wrap:mvn: )&lt;/li&gt;
	&lt;li&gt;we match only &amp;lt;feature/&amp;gt; tags with version specification and test content&lt;/li&gt;
	&lt;li&gt;within that coordinate we look for mustache-enclosed tag&lt;/li&gt;
	&lt;li&gt;we replace the entire contents of mustache&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;There are only two substitutions we can make, both working on project dependency resolution. Assuming target artifact is resolved to &quot;1.2.3&quot;, those are:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;&amp;lt;bundle&amp;gt;mvn:org.opendaylight.genius/lockmanager-api/{{versionAsInProject}}&amp;lt;/bundle&amp;gt;
&amp;lt;feature version=&quot;{{semVerRange}}&quot;&amp;gt;odl-apache-commons-net&amp;lt;/feature&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;This would result in:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;&amp;lt;bundle&amp;gt;mvn:org.opendaylight.genius/lockmanager-api/1.2.3&amp;lt;/bundle&amp;gt;
&amp;lt;feature version=&quot;[1.2.3,2)&quot;&amp;gt;odl-apache-commons-net&amp;lt;/feature&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="32708">ODLPARENT-235</key>
            <summary>Add parent for static features</summary>
                <type id="10103" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10311&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="2" iconUrl="https://jira.opendaylight.org/images/icons/priorities/critical.svg">High</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="dominik.vrbovsky">Dominik Vrbovsk&#253;</assignee>
                                    <reporter username="rovarga">Robert Varga</reporter>
                        <labels>
                            <label>pt</label>
                    </labels>
                <created>Sun, 31 May 2020 21:50:37 +0000</created>
                <updated>Tue, 12 Jul 2022 12:43:45 +0000</updated>
                            <resolved>Tue, 12 Jul 2022 12:43:45 +0000</resolved>
                                                    <fixVersion>11.0.1</fixVersion>
                                    <component>General</component>
                    <component>SFT</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="68159" author="rovarga" created="Sun, 31 May 2020 21:51:04 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=skitt&quot; class=&quot;user-hover&quot; rel=&quot;skitt&quot;&gt;skitt&lt;/a&gt; does this make sense?&lt;/p&gt;</comment>
                            <comment id="71310" author="rovarga" created="Tue, 12 Jul 2022 11:50:30 +0000"  >&lt;p&gt;The end result is &apos;templated-feature-parent&apos;, which transforms a src/main/feature/template.xml using mustaches and then wires it to SFT and normal Karaf tooling, without generation.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10300">
                    <name>Issue split</name>
                                                                <inwardlinks description="split from">
                                        <issuelink>
            <issuekey id="22188">ODLPARENT-65</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03sqf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>