<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 03:15:24 CET 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>Magnolia - Issue tracker</title>
    <link>https://jira.magnolia-cms.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-uk</language>    <build-info>
        <version>9.4.2</version>
        <build-number>940002</build-number>
        <build-date>19-01-2023</build-date>
    </build-info>


<item>
            <title>[MAGNOLIA-233] single service deployment</title>
                <link>https://jira.magnolia-cms.com/browse/MAGNOLIA-233</link>
                <project id="10000" key="MAGNOLIA">Magnolia</project>
                    <description>&lt;p&gt;So, what is to do if you want to deploy magnolia as a war without changing server.xml?&lt;/p&gt;

&lt;p&gt;The point is the context of the web application. This means that every URL created by&lt;br/&gt;
Magnolia start must start with the correct context. For example all URL produced by the author instance should start with&lt;br/&gt;
/author and all URL produced by the public instance should start with /public&lt;/p&gt;

&lt;p&gt;First you have to define the context as a prefix in the config section (this should not be a problem)&lt;/p&gt;

&lt;p&gt;Then there are two possibilities:&lt;br/&gt;
1. Setting up a filter which checks the URLs and does respective rewriting (let&apos;s call it &quot;link checking&quot;). This would mean that Magnolia must parse every JSP page and do the rewriting. Of course we could check broken links here as well...&lt;br/&gt;
2. Whenever you create a URL make sure to use this prefix (admintemplates and custom templates/paragraphs).&lt;/p&gt;

&lt;p&gt;In either ways the Magnolia team should support one of these.&lt;/p&gt;

&lt;p&gt;Ralf&lt;/p&gt;</description>
                <environment>It should be possible to deploy multiple magnolia instances under one container service</environment>
        <key id="10380">MAGNOLIA-233</key>
            <summary>single service deployment</summary>
                <type id="4" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10890&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.magnolia-cms.com/images/icons/priorities/major.svg">Major</priority>
                        <status id="6" iconUrl="https://jira.magnolia-cms.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="scharles">Sameer Charles</assignee>
                                    <reporter username="scharles">Sameer Charles</reporter>
                        <labels>
                    </labels>
                <created>Mon, 6 Dec 2004 10:42:00 +0100</created>
                <updated>Fri, 11 Mar 2005 18:07:23 +0100</updated>
                            <resolved>Fri, 11 Mar 2005 18:07:23 +0100</resolved>
                                    <version>2.0 Final</version>
                                    <fixVersion>2.1 Final</fixVersion>
                                    <component>admininterface</component>
                    <component>core</component>
                        <due></due>
                            <votes>3</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="10312" author="scharles" created="Mon, 6 Dec 2004 10:42:44 +0100"  >&lt;p&gt;that&apos;s exactly the point.&lt;/p&gt;



&lt;p&gt;Then there are two possibilities:&lt;br/&gt;
1. Setting up a filter which checks the URLs and does respective rewriting (let&apos;s call it &quot;link checking&quot;). This would mean that Magnolia must parse every JSP page and do the rewriting. Of course we could check broken links here as well...&lt;/p&gt;


&lt;p&gt;we can wrap response but that will badly effects the performance , since some servlet containers like weblogic would load the response in memory before&lt;br/&gt;
spooling it to the client.&lt;/p&gt;



&lt;p&gt;2. Whenever you create a URL make sure to use this prefix (admintemplates and custom templates/paragraphs).&lt;/p&gt;


&lt;p&gt;we should have some virtual prefix URI which we can always ignore while aggregating the content, and as you said presentation logic must take care&lt;br/&gt;
of rendering links including this prefix (eg. /author)&lt;/p&gt;


&lt;p&gt;for war deployment I will create a build script but before that we need to figure out the best way to handle this URI mapping.&lt;/p&gt;</comment>
                            <comment id="10313" author="oglueck" created="Mon, 6 Dec 2004 10:54:54 +0100"  >&lt;p&gt;A servlet can determine the context string with ServletContext#getServletContextName().&lt;/p&gt;

&lt;p&gt;But ideally a servlet should not produce any absolute URLs at all but only relative ones.&lt;/p&gt;</comment>
                            <comment id="10470" author="scharles" created="Wed, 9 Feb 2005 10:52:54 +0100"  >&lt;p&gt;Fabrizio:&lt;/p&gt;

&lt;p&gt;I saw in your comments on svn that you already did something in this regard? could you please explain me what exactly you did?&lt;br/&gt;
I would like to start work on this, such that magnolia could be deployed in sub contexts.&lt;/p&gt;</comment>
                            <comment id="10471" author="fgiust" created="Wed, 9 Feb 2005 11:16:11 +0100"  >&lt;p&gt;Yes, I started working on it and I think it will not be so hard to make magnolia fully work without to be bound to the root context.&lt;/p&gt;

&lt;p&gt;This is what need to be done and what I did till now:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Fix entryservlet and resourceDispatcher to ignore context root in request (remove request.getContextPath() from request.getRequestURI()) DONE&lt;/li&gt;
	&lt;li&gt;Fix paths in jsp or gui controls to always prepend context path for linked resources. Done for linked css and js file adding a context path parameter in the Sources contructor, started to add context path to images and links in jsp pages (adminCentral.jsp and extractTree.jsp should be ok, other pages still need to be fixed)&lt;/li&gt;
	&lt;li&gt;Check and fix js functions: adminCentral.js mgnlAdminCentralSwitchExtractTree only works properly if you gives the url (with the prependended context path) as a parameter. The default url (without the context path) will never work. I actually fixed calls from admincentral adding the &quot;href&quot; parameter, but a more complete solution will be to define a js variable wich can hold the current context path and use it for each request. Without this for example custom buttons in the admin interface will not work when changing context (since you have to hardcode the url). This is probably the hardest point.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;With this changes magnolia is able to ork in subcontext but it still requires the mapping of the docroot/admindocroot directories in server.xml:&lt;br/&gt;
&amp;lt;Host name=&quot;localhost&quot;appBase=&quot;webapps&quot; ...&amp;gt;&lt;br/&gt;
        &amp;lt;Context path=&quot;/magnolia/docroot&quot; docBase=&quot;magnolia/docroot&quot; /&amp;gt;&lt;br/&gt;
        &amp;lt;Context path=&quot;/magnolia/admindocroot&quot; docBase=&quot;magnolia/admindocroot&quot; /&amp;gt;&lt;br/&gt;
&amp;lt;/Host&amp;gt;&lt;br/&gt;
If you don&apos;t define these 2 context magnolia will intercept all request, also for static content.&lt;br/&gt;
The last step will then be find a way to not to intercept requests directed to the docroot and admindocroot paths. After this, you could drop magnolia war in tomcat webapp folder and see it working!&lt;/p&gt;</comment>
                            <comment id="10472" author="fgiust" created="Wed, 9 Feb 2005 11:21:03 +0100"  >&lt;p&gt;well, another important step:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;cache and internal links: internal links need to be fixed with a prepended context root (easy), but since the same web application could be accessed using a context path (eg. direct access from tomcat) or with a root context (eg tomcat linked from apache) cache should save different entries for calls coming with different contexts.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="10474" author="scharles" created="Wed, 9 Feb 2005 12:01:40 +0100"  >&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;The last step will then be find a way to not to intercept requests directed to the docroot and admindocroot paths. After   this, you could drop magnolia war in tomcat webapp folder and see it working!&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;why dont we simply add a spool servlet inside magnolia context which will take over all requests to&lt;br/&gt;
$CONTEXT$/docroot and $CONTEXT$/admindocroot ?&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;cache and internal links: internal links need to be fixed with a prepended context root (easy), but since the same web application could be accessed using a context path (eg. direct access from tomcat) or with a root context (eg tomcat linked from apache) cache should save different entries for calls coming with different contexts.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;For cache handler its not a big deal, it could easily resolve path with or without context. - ll do that&lt;/p&gt;</comment>
                            <comment id="10477" author="scharles" created="Thu, 10 Feb 2005 11:39:26 +0100"  >&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;added a Spool servlet which could be used to render static resources, it respects magnolia authentication.&lt;br/&gt;
&lt;a href=&quot;http://svn.magnolia.info/svn/magnolia/trunk/src/main/info/magnolia/cms/servlets/Spool.java&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://svn.magnolia.info/svn/magnolia/trunk/src/main/info/magnolia/cms/servlets/Spool.java&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;(to switch off security on static resources add these to config/server/SecureURI deny list)&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;updated web.xml with entries supporting this servlet&lt;br/&gt;
&lt;a href=&quot;http://svn.magnolia.info/svn/magnolia/trunk/src/webapp/WEB-INF/web.xml&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://svn.magnolia.info/svn/magnolia/trunk/src/webapp/WEB-INF/web.xml&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="10480" author="fgiust" created="Thu, 10 Feb 2005 21:40:51 +0100"  >&lt;p&gt;the spool servlet works perfectly for me.&lt;/p&gt;

&lt;p&gt;I fixed more gui elements, jsp, js, and page templates. Now magnolia WORKS when dropped in tomcat without any modification to server.xml, but there will probably be still some glitches or problems...&lt;/p&gt;

&lt;p&gt;the getContextPath() thing needed to be added in lots of places and in gui controls you actually can&apos;t know if the request has been set or not (all the controls extends ControlSuper which has a getRequest, and there are different contructor, with or without request). Another problem is that NPE are generally catched and ignored without any log  so it&apos;s also difficult to see if an error has occurred (if something is missing in the page, probably it has).&lt;/p&gt;

&lt;p&gt;Anyway, it mostly works for me: we need to review and test everything accurately (and add log when an exception is swallowed)... the bigger part of the work is done&lt;/p&gt;</comment>
                            <comment id="10521" author="madshad" created="Thu, 24 Feb 2005 00:10:22 +0100"  >&lt;p&gt;Hope this formats ok? Here is an example of how I have modified ALL of the config classes to make them context based. Once all of the config classes have been modified in this way it is pretty easy to follow through the compile process and make the additional changes.&lt;/p&gt;

&lt;p&gt;public class Listener {&lt;/p&gt;

&lt;p&gt;  private static Logger log = Logger.getLogger(Listener.class);&lt;br/&gt;
  private static final String CONFIG_PAGE = &quot;server&quot;;&lt;/p&gt;

&lt;p&gt;  /**&lt;br/&gt;
   *Map for context based access&lt;br/&gt;
   */&lt;br/&gt;
  private static HashMap cachedContextContent = new HashMap();&lt;/p&gt;

&lt;p&gt;  /**&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;constructor&lt;br/&gt;
   */&lt;br/&gt;
  private Listener(){}&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;  /**&lt;br/&gt;
   *Provides a cachedContent HashMap per ServletContext&lt;br/&gt;
   */&lt;br/&gt;
  private static HashMap cachedContent(ServletContext context){&lt;br/&gt;
    if(!cachedContextContent.containsKey(context.getServletContextName()))&lt;/p&gt;
{
      cachedContextContent.put(context.getServletContextName(), new HashMap());
    }

&lt;p&gt;    return ((HashMap)cachedContextContent.get(context.getServletContextName()));&lt;br/&gt;
  }&lt;/p&gt;

&lt;p&gt;  /**&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&amp;lt;p&amp;gt;reads listener config from the config repository and caches its content&lt;/li&gt;
	&lt;li&gt;in to the hash table&amp;lt;/p&amp;gt;&lt;br/&gt;
   *&lt;br/&gt;
   */&lt;br/&gt;
  public static void init(ServletContext context) 
&lt;div class=&quot;error&quot;&gt;&lt;span class=&quot;error&quot;&gt;Unknown macro: {    try {
      log.info(&quot;Config : loading Listener info for context: &quot; + context.getServletContextName());

      Content startPage = ContentRepository.getHierarchyManager(context
	  ,ContentRepository.CONFIG).getPage(CONFIG_PAGE);
      
      //When I access my cache then it is always the cache for my ServletContext
      cachedContent(context).clear();
      
      cacheContent(context,startPage.getContentNode(&quot;IPConfig&quot;).getChildren().iterator());

      log.info(&quot;Config : Listener info loaded for context: &quot; + context.getServletContextName());
    } catch (RepositoryException re) {
      log.error(&quot;Config : Failed to load Listener info for context: &quot; + context.getServletContextName());
      log.error(re.getMessage(), re);
    }  }&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;  public static void reload(ServletContext context) &lt;/p&gt;
{
    log.info(&quot;Config : re-loading Listener info for context: &quot; + context.getServletContextName());
    init(context);
  }

&lt;p&gt;  /**&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&amp;lt;p&amp;gt;Cache listener content from the config repository (Context based)&amp;lt;/p&amp;gt;&lt;br/&gt;
   */&lt;br/&gt;
  private static void cacheContent(ServletContext context, Iterator ipList) {&lt;br/&gt;
    while(ipList.hasNext()) {&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;      Content c = (Content) ipList.next();&lt;/p&gt;

&lt;p&gt;      try {&lt;br/&gt;
	HashMap types = new HashMap();&lt;br/&gt;
	cachedContent(context).put((context.getServletContextName() + &quot;.&quot; + c.getNodeData(&quot;IP&quot;).getString()),types);&lt;/p&gt;

&lt;p&gt;	Iterator it = c.getContentNode(&quot;Access&quot;).getChildren().iterator();&lt;br/&gt;
	while (it.hasNext()) &lt;/p&gt;
{
	  Content type = (Content) it.next();
	  types.put(type.getNodeData(&quot;Method&quot;).getString().toLowerCase(),&quot;&quot;);
	}

&lt;p&gt;      } catch (RepositoryException re) {}&lt;br/&gt;
    }&lt;/p&gt;

&lt;p&gt;    ipList = null;&lt;br/&gt;
  }&lt;/p&gt;

&lt;p&gt;  /**&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&amp;lt;p&amp;gt;get access info of the requested IP (Context based)&lt;/li&gt;
	&lt;li&gt;&amp;lt;/p&amp;gt;&lt;/li&gt;
	&lt;li&gt;@param key IP tp be checked&lt;/li&gt;
	&lt;li&gt;@return HashMap containing Access info&lt;/li&gt;
	&lt;li&gt;@throws Exception&lt;br/&gt;
   */&lt;br/&gt;
  public static HashMap getInfo(ServletContext context, String key) throws Exception 
{
    return (HashMap) cachedContent(context).get((context.getServletContextName() + &quot;.&quot; + key));
  }&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;}&lt;/p&gt;</comment>
                            <comment id="10522" author="fgiust" created="Thu, 24 Feb 2005 09:36:21 +0100"  >&lt;p&gt;Andy, in the current svn trunk all the needed classes have already been modified adding the servletContext where appropriate.&lt;/p&gt;

&lt;p&gt;There is still some work to do on the front end part, but IHMO the java side is already ok. The problem actually is to fix and test all the javascript functions to make them context based (XmlHttpRequests are fixed, some few other js functions which load urls are not yet working). &lt;br/&gt;
BTW if you try compiling magnolia from trunk you absolutely will be able to run it simply dropping the war into tomcat (and adding the repository content which is not in svn) with only a few glitches.&lt;/p&gt;</comment>
                            <comment id="10559" author="fgiust" created="Fri, 11 Mar 2005 18:07:23 +0100"  >&lt;p&gt;fixed in svn for 2.1.&lt;br/&gt;
activation is fixed (adding contextPath to senderUrl) and now everything seems to work fine. Javascript function have been modified and js files are now parsed by the server, so it&apos;s easy to add the contextPath where needed.&lt;br/&gt;
Test it!&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_14166" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Acceptance criteria</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                                    <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge aui-lozenge-complete" style="font-size: 12px; font-weight: normal; display: flex; flex-direction: row; align-items: center;" ><span style="padding-right: 4px; vertical-align: middle;"><svg width="15" height="15" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" fill="white"><path clip-rule="evenodd" d="m10.41037,3.42544l-7.86501,0c-0.72395,0 -1.31084,0.58688 -1.31084,1.31084l0,7.86508c0,0.7239 0.58689,1.3108 1.31084,1.3108l7.86501,0c0.724,0 1.3109,-0.5869 1.3109,-1.3108l0,-7.86508c0,-0.72396 -0.5869,-1.31084 -1.3109,-1.31084zm-7.86501,-0.65542c-1.08593,0 -1.96626,0.88032 -1.96626,1.96626l0,7.86508c0,1.0859 0.88033,1.9662 1.96626,1.9662l7.86501,0c1.086,0 1.9663,-0.8803 1.9663,-1.9662l0,-7.86508c0,-1.08594 -0.8803,-1.96626 -1.9663,-1.96626l-7.86501,0z" fill-rule="evenodd"/><path d="m5.09049,10.18526l-1.82767,-1.82766l-0.78479,0.78479l2.61246,2.61246l5.38758,-5.38754l-0.78483,-0.78479l-4.60275,4.60274z"/></svg></span><span>Empty</span></span></div>
                        ]]>
    </checklist>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10111" key="com.atlassian.jira.toolkit:reporterdomain">
                        <customfieldname>Company</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>magnolia-cms.com</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10031" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 6 Dec 2004 10:54:54 +0100</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_12730" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_14151" key="com.atlassian.jira.toolkit:message">
                        <customfieldname>Docu info</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10061" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comm is not jira-dev</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10071" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last participant</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>mmuehlebach</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_13136" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            18 years, 51 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10020" key="com.atlassian.jira.toolkit:attachments">
                        <customfieldname>Number of attachments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10150" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname>Number of comments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>11.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>madshad</customfieldvalue>
            <customfieldvalue>fgiust</customfieldvalue>
            <customfieldvalue>oglueck</customfieldvalue>
            <customfieldvalue>scharles</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i01dfr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10244" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8059</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_14168" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Task DoD</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                        
        <div style="margin-bottom: 8px;">
                            <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge" style="font-size: 12px; font-weight: normal; display: flex; flex-direction: row; align-items: center;" ><span style="padding-right: 4px; vertical-align: middle;"><svg width="15" height="15" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" fill="white"><path clip-rule="evenodd" d="m10.41037,3.42544l-7.86501,0c-0.72395,0 -1.31084,0.58688 -1.31084,1.31084l0,7.86508c0,0.7239 0.58689,1.3108 1.31084,1.3108l7.86501,0c0.724,0 1.3109,-0.5869 1.3109,-1.3108l0,-7.86508c0,-0.72396 -0.5869,-1.31084 -1.3109,-1.31084zm-7.86501,-0.65542c-1.08593,0 -1.96626,0.88032 -1.96626,1.96626l0,7.86508c0,1.0859 0.88033,1.9662 1.96626,1.9662l7.86501,0c1.086,0 1.9663,-0.8803 1.9663,-1.9662l0,-7.86508c0,-1.08594 -0.8803,-1.96626 -1.9663,-1.96626l-7.86501,0z" fill-rule="evenodd"/><path d="m5.09049,10.18526l-1.82767,-1.82766l-0.78479,0.78479l2.61246,2.61246l5.38758,-5.38754l-0.78483,-0.78479l-4.60275,4.60274z"/></svg></span><span>0/6</span></span></div>
                    
            <div class="checklist-progress-bar-wrapper" style="">
        <div class="checklist-progress-bar" style="position: relative; width: 100%; background-color: #cccccc; margin-bottom: 2px; margin-top: 5px;">
                        <div class="checklist-progress" style="display: block; float: none; width: 0%; height: 2px; background: #14892c;">
                            </div>
        </div>
    </div>
        </div>
    
                                    <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Doc/release notes changes? Comment present?</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Downstream builds green?</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Solution information and context easily available?</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span><strong>Tests</strong></span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span><strong>FixVersion</strong> filled and not yet released</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><rect fill="#EFF4FB" height="17.5" rx="2.5" stroke="#ADBBD0" width="18" x="0.44141" y="3.94141"/></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Architecture Decision Record (<strong>ADR</strong>)</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                            ]]>
    </checklist>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_14145" key="com.intenso.jira.issue-templates:issue-templates-customfield">
                        <customfieldname>Template</customfieldname>
                        <customfieldvalues>
                            


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_15131" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Time in Discovery</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10032" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>