<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:36:49 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>[PLAS-3] Users need to associate variable values with matched substrings using wildcards</title>
                <link>https://jira.opendaylight.org/browse/PLAS-3</link>
                <project id="10600" key="PLAS">plastic</project>
                    <description>
&lt;p&gt;&lt;b&gt;Proposal B: this is about providing a simplified wildcard-like matching for use in input schemas&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;If a designer knows how to use regex effectively then they won&apos;t be bothered much by creating a morpher.&lt;/p&gt;

&lt;p&gt;So making a simpler matching mechanism will make it easier on less knowledgable users.&lt;/p&gt;

&lt;p&gt;An example&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
|*${abc}/${def}*|
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;So the bars | are required and mark the beginning and end of a &quot;wildcard expression&quot; (the full value, no prefix, no suffix)&lt;br/&gt;
 Variables are explicitly present and named in the schema, which is an advantage over the regex in Proposal A&lt;br/&gt;
 An asterisk would match any number of characters (not greedily)&lt;br/&gt;
 Any other characters outside of variables would be literal matches&lt;br/&gt;
 All divisions between literals, asterisks, and variables would be assumed to be on word boundaries.&lt;br/&gt;
 So if you want to break up a word, you have to use a morpher with regex&lt;br/&gt;
 This feature would end up using regex underneath&lt;/p&gt;

&lt;p&gt;Here is a fuller example (from discussion with Qasim)...&lt;/p&gt;

&lt;p&gt;input schema...&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-json&quot;&gt;
{ &lt;span class=&quot;code-quote&quot;&gt;&quot;device&quot;&lt;/span&gt;: { &lt;span class=&quot;code-quote&quot;&gt;&quot;id&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;|*/${aid}/*|&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;bw&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;${bandwidth}&quot;&lt;/span&gt; }}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;


&lt;p&gt;payload...&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-json&quot;&gt;
{ &lt;span class=&quot;code-quote&quot;&gt;&quot;device&quot;&lt;/span&gt;: { &lt;span class=&quot;code-quote&quot;&gt;&quot;id&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;CX02DPM 43/DEV-53/aus Orlando&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;bw&quot;&lt;/span&gt;: &lt;span class=&quot;code-quote&quot;&gt;&quot;1000&quot;&lt;/span&gt; }}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;resulting variable binding...&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-json&quot;&gt;
${aid} = &lt;span class=&quot;code-quote&quot;&gt;&quot;DEV-53&quot;&lt;/span&gt;
${bandwidth} = 1000
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;br/&gt;
Using this &quot;wildcard matching&quot; you can get &quot;DEV-53&quot; bound to &quot;aid&quot; but if you want, say, the &quot;02&quot; out of &quot;CX02DPM&quot;, you would need to write a morpher and cannot use this facility. Wildcarding is a simplification of regex and relies on the Regex definition of word boundary to recognize substrings that can be variable values.&lt;br/&gt;
&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="32316">PLAS-3</key>
            <summary>Users need to associate variable values with matched substrings using wildcards</summary>
                <type id="10103" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10311&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="10002" iconUrl="https://jira.opendaylight.org/" description="">Done</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="allanclarke">Allan Clarke</assignee>
                                    <reporter username="allanclarke">Allan Clarke</reporter>
                        <labels>
                    </labels>
                <created>Wed, 8 Jan 2020 20:57:48 +0000</created>
                <updated>Tue, 14 Jan 2020 21:44:25 +0000</updated>
                            <resolved>Tue, 14 Jan 2020 21:44:25 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                    <workratio workratioPercent="0"/>
                                    <progress percentage="0">
                                    <originalProgress>
                                                    <row percentage="100" backgroundColor="#89afd7"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="0" backgroundColor="#51a825"/>
                                                    <row percentage="100" backgroundColor="#ec8e00"/>
                                            </currentProgress>
                            </progress>
                                    <aggregateprogress percentage="0">
                                    <originalProgress>
                                                    <row percentage="100" backgroundColor="#89afd7"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="0" backgroundColor="#51a825"/>
                                                    <row percentage="100" backgroundColor="#ec8e00"/>
                                            </currentProgress>
                            </aggregateprogress>
                                    <timeoriginalestimate seconds="86400">3 days</timeoriginalestimate>
                            <timeestimate seconds="86400">3 days</timeestimate>
                                        <comments>
                            <comment id="67665" author="allanclarke" created="Tue, 14 Jan 2020 16:10:20 +0000"  >&lt;p&gt;The below was the original Proposal A and the one implemented in the main part of this story was Proposal B. But B won out due to its&lt;br/&gt;
more WYSIWYG characteristic, which fits Plastic better. Also the Proposal B below can now be done as a variant of Proposal A with reduced &lt;br/&gt;
effort (ie, shared code).&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Proposal A: This&#160;is about exposing use of regex to schema designers.&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;For reference, an example regex:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
/^.\s(.*?)\s(.*?).*$/

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Allow user to do this:&lt;/p&gt;

&lt;p&gt;${abc=~/...regex.../}&lt;/p&gt;

&lt;p&gt;Note that = is used for assignment of default value and =~ is used for association of regex&lt;/p&gt;

&lt;p&gt;In the example above, there are up to 2 captures, which would result in variable bindinds for abc/1 and abc/2&lt;/p&gt;

&lt;p&gt;Note the way the variable is named is a reminder that it is from a regex&lt;/p&gt;

&lt;p&gt;Any non-matches mean that there will be no binding for those variables and a likely complaint from Plastic. User will need to know it was a bad regex, but there is a hint due to unique variable name structure.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                    </comments>
                    <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|i03qof:</customfieldvalue>

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