<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<base href="https://issues.shibboleth.net/jira">
<title>Message Title</title>
</head>
<body class="jira" style="color: #333333; font-family: Arial, sans-serif; font-size: 14px; line-height: 1.429">
<table id="background-table" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; background-color: #f5f5f5; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt" bgcolor="#f5f5f5">
<!-- header here -->
<tbody>
<tr>
<td id="header-pattern-container" style="padding: 0px; border-collapse: collapse; padding: 10px 20px">
<table id="header-pattern" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tbody>
<tr>
<td id="header-avatar-image-container" valign="top" style="padding: 0px; border-collapse: collapse; vertical-align: top; width: 32px; padding-right: 8px" width="32"> <img id="header-avatar-image" class="image_fix" src="cid:jira-generated-image-avatar-9769a667-8baf-4e02-8c22-1435988e1658" height="32" width="32" border="0" style="border-radius: 3px; vertical-align: top"> </td>
<td id="header-text-container" valign="middle" style="padding: 0px; border-collapse: collapse; vertical-align: middle; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px"> <a class="user-hover" rel="cp+akh4hcy23wzvoqzqp+bp6+ao=@https://aai-logon.switch.ch/idp/shibboleth" id="email_cp+akh4hcy23wzvoqzqp+bp6+ao=@https://aai-logon.switch.ch/idp/shibboleth" href="https://issues.shibboleth.net/jira/secure/ViewProfile.jspa?name=cp%2Bakh4hcy23wzvoqzqp%2Bbp6%2Bao%3D%40https%3A%2F%2Faai-logon.switch.ch%2Fidp%2Fshibboleth" style="color:#0052cc;; color: #3b73af; text-decoration: none">Etienne Dysli-Metref</a> <strong>commented</strong> on <a href="https://issues.shibboleth.net/jira/browse/IDP-1481" style="color: #3b73af; text-decoration: none"><img src="cid:jira-generated-image-avatar-3d00050a-cc23-436a-a858-bbf9c19f954a" height="16" width="16" border="0" align="absmiddle" alt="New Feature"> IDP-1481</a> </td>
</tr>
</tbody>
</table> </td>
</tr>
<tr>
<td id="email-content-container" style="padding: 0px; border-collapse: collapse; padding: 0 20px">
<table id="email-content-table" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; border-spacing: 0; border-collapse: separate">
<tbody>
<tr>
<!-- there needs to be content in the cell for it to render in some clients -->
<td class="email-content-rounded-top mobile-expand" style="padding: 0px; border-collapse: collapse; color: #ffffff; padding: 0 15px 0 16px; height: 15px; background-color: #ffffff; border-left: 1px solid #cccccc; border-top: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom: 0; border-top-right-radius: 5px; border-top-left-radius: 5px; height: 10px; line-height: 10px; padding: 0 15px 0 16px; mso-line-height-rule: exactly" height="10" bgcolor="#ffffff"> </td>
</tr>
<tr>
<td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff" bgcolor="#ffffff">
<table class="page-title-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tbody>
<tr>
<td style="vertical-align: top;; padding: 0px; border-collapse: collapse; padding-right: 5px; font-size: 20px; line-height: 30px; mso-line-height-rule: exactly" class="page-title-pattern-header-container"> <span class="page-title-pattern-header" style="font-family: Arial, sans-serif; padding: 0; font-size: 20px; line-height: 30px; mso-text-raise: 2px; mso-line-height-rule: exactly; vertical-align: middle"> <a href="https://issues.shibboleth.net/jira/browse/IDP-1481" style="color: #3b73af; text-decoration: none">Re: Single deployment workflow for an IdP with multiple extensions</a> </span> </td>
</tr>
</tbody>
</table> </td>
</tr>
<tr>
<td id="text-paragraph-pattern-top" class="email-content-main mobile-expand comment-top-pattern" style="padding: 0px; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff; border-bottom: none; padding-bottom: 0" bgcolor="#ffffff">
<table class="text-paragraph-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 2px">
<tbody>
<tr>
<td class="text-paragraph-pattern-container mobile-resize-text " style="padding: 0px; border-collapse: collapse; padding: 0 0 10px 0"> <p style="margin: 10px 0 0 0; margin-top: 0">Overlays are a <a href="https://maven.apache.org/plugins/maven-war-plugin/overlays.html" class="external-link" rel="nofollow" style="color: #3b73af; text-decoration: none">function of the Maven WAR plugin</a> allowing one project to add resources or classes to an existing WAR artifact, essentially "repackaging" it to include more things.</p> <p style="margin: 10px 0 0 0">I want to use this overlay function to add multiple extensions to our IdP and deploy the resulting WAR. This is quite straightforward to accomplish with a simple POM file:</p>
<div class="code panel" style="border-width: 1px;; border: 1px solid #cccccc; background: #f5f5f5; font-size: 12px; line-height: 1.333; font-family: monospace; border: 1px solid #cccccc; -moz-border-radius: 3px 3px 3px 3px; border-radius: 3px 3px 3px 3px; margin: 9px 0">
<div class="codeContent panelContent" style="padding: 9px 12px">
<pre class="code-xml" style="margin: 10px 0 0 0; margin-top: 0; max-height: 30em; overflow: auto; white-space: pre-wrap; word-wrap: normal"><project xmlns=<span class="code-quote" style="color: #009100">"http://maven.apache.org/POM/4.0.0"</span> <span class="code-keyword" style="color: #000091; font-weight: bold">xmlns:xsi</span>=<span class="code-quote" style="color: #009100">"http://www.w3.org/2001/XMLSchema-instance"</span>
xsi:schemaLocation=<span class="code-quote" style="color: #009100">"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"</span>>
<span class="code-tag" style="color: #000091"><modelVersion></span>4.0.0<span class="code-tag" style="color: #000091"></modelVersion></span>
<span class="code-tag" style="color: #000091"><groupId></span>ch.SWITCH.aai<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>idp-webapp-overlay<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>0.1.0-SNAPSHOT<span class="code-tag" style="color: #000091"></version></span>
<span class="code-tag" style="color: #000091"><packaging></span>war<span class="code-tag" style="color: #000091"></packaging></span>
<span class="code-tag" style="color: #000091"><name></span>Shibboleth Identity Provider web application overlay<span class="code-tag" style="color: #000091"></name></span>
<span class="code-tag" style="color: #000091"><description></span>Allows easy inclusion of extensions or libraries in an IdP.<span class="code-tag" style="color: #000091"></description></span>
<span class="code-tag" style="color: #000091"><properties></span>
<span class="code-tag" style="color: #000091"><idp.version></span>3.4.4<span class="code-tag" style="color: #000091"></idp.version></span>
<span class="code-tag" style="color: #000091"><java.version></span>1.8<span class="code-tag" style="color: #000091"></java.version></span>
<span class="code-tag" style="color: #000091"><maven-clean-plugin.version></span>3.1.0<span class="code-tag" style="color: #000091"></maven-clean-plugin.version></span>
<span class="code-tag" style="color: #000091"><maven-dependency-plugin.version></span>3.1.1<span class="code-tag" style="color: #000091"></maven-dependency-plugin.version></span>
<span class="code-tag" style="color: #000091"><maven-resources-plugin.version></span>3.1.0<span class="code-tag" style="color: #000091"></maven-resources-plugin.version></span>
<span class="code-tag" style="color: #000091"><maven-war-plugin.version></span>3.2.3<span class="code-tag" style="color: #000091"></maven-war-plugin.version></span>
<span class="code-tag" style="color: #000091"><versions-maven-plugin.version></span>2.7<span class="code-tag" style="color: #000091"></versions-maven-plugin.version></span>
<span class="code-tag" style="color: #000091"></properties></span>
<span class="code-tag" style="color: #000091"><dependencyManagement></span>
<span class="code-tag" style="color: #000091"><dependencies></span>
<span class="code-tag" style="color: #000091"><dependency></span>
<span class="code-tag" style="color: #000091"><groupId></span>net.shibboleth.idp<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>idp-bom<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>${idp.version}<span class="code-tag" style="color: #000091"></version></span>
<span class="code-tag" style="color: #000091"><type></span>pom<span class="code-tag" style="color: #000091"></type></span>
<span class="code-tag" style="color: #000091"><scope></span>import<span class="code-tag" style="color: #000091"></scope></span>
<span class="code-tag" style="color: #000091"></dependency></span>
<span class="code-tag" style="color: #000091"></dependencies></span>
<span class="code-tag" style="color: #000091"></dependencyManagement></span>
<span class="code-tag" style="color: #000091"><dependencies></span>
<span class="code-tag" style="color: #000091"><span class="code-comment" style="color: #808080"><!-- Use IdP WAR in overlay --></span></span>
<span class="code-tag" style="color: #000091"><dependency></span>
<span class="code-tag" style="color: #000091"><groupId></span>net.shibboleth.idp<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>idp-war<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>${idp.version}<span class="code-tag" style="color: #000091"></version></span><span class="code-tag" style="color: #000091"><span class="code-comment" style="color: #808080"><!-- Needed because idp-bom is missing type=war for idp-war --></span></span>
<span class="code-tag" style="color: #000091"><type></span>war<span class="code-tag" style="color: #000091"></type></span>
<span class="code-tag" style="color: #000091"><scope></span>runtime<span class="code-tag" style="color: #000091"></scope></span>
<span class="code-tag" style="color: #000091"></dependency></span>
<span class="code-tag" style="color: #000091"><span class="code-comment" style="color: #808080"><!-- <span class="code-quote" style="color: #009100; color: #808080">"normal"</span> dependencies are added to the WAR by the overlay --></span></span>
<span class="code-tag" style="color: #000091"><dependency></span>
<span class="code-tag" style="color: #000091"><groupId></span>org.slf4j<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>jcl-over-slf4j<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><scope></span>runtime<span class="code-tag" style="color: #000091"></scope></span>
<span class="code-tag" style="color: #000091"></dependency></span>
<span class="code-tag" style="color: #000091"><dependency></span>
<span class="code-tag" style="color: #000091"><groupId></span>org.slf4j<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>log4j-over-slf4j<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><scope></span>runtime<span class="code-tag" style="color: #000091"></scope></span>
<span class="code-tag" style="color: #000091"></dependency></span>
<span class="code-tag" style="color: #000091"><dependency></span>
<span class="code-tag" style="color: #000091"><groupId></span>io.dropwizard.metrics<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>metrics-jvm<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>3.1.2<span class="code-tag" style="color: #000091"></version></span>
<span class="code-tag" style="color: #000091"><scope></span>runtime<span class="code-tag" style="color: #000091"></scope></span>
<span class="code-tag" style="color: #000091"></dependency></span>
<span class="code-tag" style="color: #000091"><span class="code-comment" style="color: #808080"><!-- Example: JDBC driver and connection pool library --></span></span>
<span class="code-tag" style="color: #000091"><dependency></span>
<span class="code-tag" style="color: #000091"><groupId></span>org.postgresql<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>postgresql<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>42.2.6<span class="code-tag" style="color: #000091"></version></span>
<span class="code-tag" style="color: #000091"><scope></span>runtime<span class="code-tag" style="color: #000091"></scope></span>
<span class="code-tag" style="color: #000091"></dependency></span>
<span class="code-tag" style="color: #000091"><dependency></span>
<span class="code-tag" style="color: #000091"><groupId></span>com.zaxxer<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>HikariCP<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>3.3.1<span class="code-tag" style="color: #000091"></version></span>
<span class="code-tag" style="color: #000091"><scope></span>runtime<span class="code-tag" style="color: #000091"></scope></span>
<span class="code-tag" style="color: #000091"></dependency></span>
<span class="code-tag" style="color: #000091"><span class="code-comment" style="color: #808080"><!-- Example: extensions --></span></span>
<span class="code-tag" style="color: #000091"><dependency></span>
<span class="code-tag" style="color: #000091"><groupId></span>ch.eduid<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>affiliation-chooser<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>1.1.1<span class="code-tag" style="color: #000091"></version></span>
<span class="code-tag" style="color: #000091"><scope></span>runtime<span class="code-tag" style="color: #000091"></scope></span>
<span class="code-tag" style="color: #000091"></dependency></span>
<span class="code-tag" style="color: #000091"><dependency></span>
<span class="code-tag" style="color: #000091"><groupId></span>ch.SWITCH.aai.idp<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>mfa-flows<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>2.0.0<span class="code-tag" style="color: #000091"></version></span>
<span class="code-tag" style="color: #000091"><scope></span>runtime<span class="code-tag" style="color: #000091"></scope></span>
<span class="code-tag" style="color: #000091"><exclusions></span>
<span class="code-tag" style="color: #000091"><exclusion></span>
<span class="code-tag" style="color: #000091"><groupId></span>commons-logging<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>commons-logging<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"></exclusion></span>
<span class="code-tag" style="color: #000091"></exclusions></span>
<span class="code-tag" style="color: #000091"></dependency></span>
<span class="code-tag" style="color: #000091"></dependencies></span>
<span class="code-tag" style="color: #000091"><build></span>
<span class="code-tag" style="color: #000091"><plugins></span>
<span class="code-tag" style="color: #000091"><plugin></span>
<span class="code-tag" style="color: #000091"><groupId></span>org.apache.maven.plugins<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>maven-dependency-plugin<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>${maven-dependency-plugin.version}<span class="code-tag" style="color: #000091"></version></span>
<span class="code-tag" style="color: #000091"></plugin></span>
<span class="code-tag" style="color: #000091"><plugin></span>
<span class="code-tag" style="color: #000091"><groupId></span>org.apache.maven.plugins<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>maven-war-plugin<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>${maven-war-plugin.version}<span class="code-tag" style="color: #000091"></version></span>
<span class="code-tag" style="color: #000091"><configuration></span>
<span class="code-tag" style="color: #000091"><warName></span>idp<span class="code-tag" style="color: #000091"></warName></span>
<span class="code-tag" style="color: #000091"><overlays></span>
<span class="code-tag" style="color: #000091"><overlay></span>
<span class="code-tag" style="color: #000091"><groupId></span>net.shibboleth.idp<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>idp-war<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"></overlay></span>
<span class="code-tag" style="color: #000091"></overlays></span>
<span class="code-tag" style="color: #000091"></configuration></span>
<span class="code-tag" style="color: #000091"></plugin></span>
<span class="code-tag" style="color: #000091"><plugin></span>
<span class="code-tag" style="color: #000091"><groupId></span>org.apache.maven.plugins<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>maven-clean-plugin<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>${maven-clean-plugin.version}<span class="code-tag" style="color: #000091"></version></span>
<span class="code-tag" style="color: #000091"></plugin></span>
<span class="code-tag" style="color: #000091"><plugin></span>
<span class="code-tag" style="color: #000091"><groupId></span>org.apache.maven.plugins<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>maven-resources-plugin<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>${maven-resources-plugin.version}<span class="code-tag" style="color: #000091"></version></span>
<span class="code-tag" style="color: #000091"></plugin></span>
<span class="code-tag" style="color: #000091"><plugin></span>
<span class="code-tag" style="color: #000091"><groupId></span>org.codehaus.mojo<span class="code-tag" style="color: #000091"></groupId></span>
<span class="code-tag" style="color: #000091"><artifactId></span>versions-maven-plugin<span class="code-tag" style="color: #000091"></artifactId></span>
<span class="code-tag" style="color: #000091"><version></span>${versions-maven-plugin.version}<span class="code-tag" style="color: #000091"></version></span>
<span class="code-tag" style="color: #000091"></plugin></span>
<span class="code-tag" style="color: #000091"></plugins></span>
<span class="code-tag" style="color: #000091"></build></span>
<span class="code-tag" style="color: #000091"></project></span>
</pre>
</div>
</div> <p style="margin: 10px 0 0 0">What this POM file does is add, into the WAR, the runtime dependencies that we need:<br> 1. Our extensions and, transitively, their dependencies.<br> 2. A JDBC driver and pooling library.<br> 3. Work around the fact that idp-war-3.4.4.war (as produced by <tt>idp-war/pom.xml</tt>) doesn't contain all required runtime dependencies to run unmodified on a servlet container.</p> <p style="margin: 10px 0 0 0">The above POM file can be extended to do more complicated things through dependency management, like removing unneeded libraries (goodbye c3p0!) or controlling the version of any direct or transitive dependency (enforcing that all extensions bundle the same version of the Spring Framework, for example).</p> <p style="margin: 10px 0 0 0">There are a few things that the project could do to help this way of deploying an IdP:<br> 1. Add to <tt>idp-war/pom.xml</tt> all required runtime dependencies to run unmodified on a servlet container. That is, those added to the WAR file in the distribution.<br> 2. Publish the artifact idp-war-<version>.war in the project's Maven repository.</p> <p style="margin: 10px 0 0 0">Judging by a discussion on the dev list "idp-war-3.4.4.war in Maven Repo is bad" started by Dan McLaughlin on 2019-06-12, we would not be the only ones benefiting from those changes.</p> </td>
</tr>
</tbody>
</table> </td>
</tr>
<tr>
<td class="email-content-main mobile-expand " style="padding: 0px; border-collapse: collapse; border-left: 1px solid #cccccc; border-right: 1px solid #cccccc; border-top: 0; border-bottom: 0; padding: 0 15px 0 16px; background-color: #ffffff" bgcolor="#ffffff">
<table id="actions-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px">
<tbody>
<tr>
<td id="actions-pattern-container" valign="middle" style="padding: 0px; border-collapse: collapse; padding: 10px 0 10px 24px; vertical-align: middle; padding-left: 0">
<table align="left" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tbody>
<tr>
<td class="actions-pattern-action-icon-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 0; vertical-align: middle"> <a href="https://issues.shibboleth.net/jira/browse/IDP-1481#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none"> <img class="actions-pattern-action-icon-image" src="cid:jira-generated-image-static-comment-icon-5cfe69ff-e8f6-4edf-8411-7ccc0d6c863e" alt="Add Comment" title="Add Comment" height="16" width="16" border="0" style="vertical-align: middle"> </a> </td>
<td class="actions-pattern-action-text-container" style="padding: 0px; border-collapse: collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 4px; padding-left: 5px"> <a href="https://issues.shibboleth.net/jira/browse/IDP-1481#add-comment" target="_blank" title="Add Comment" style="color: #3b73af; text-decoration: none">Add Comment</a> </td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table> </td>
</tr>
<!-- there needs to be content in the cell for it to render in some clients -->
<tr>
<td class="email-content-rounded-bottom mobile-expand" style="padding: 0px; border-collapse: collapse; color: #ffffff; padding: 0 15px 0 16px; height: 5px; line-height: 5px; background-color: #ffffff; border-top: 0; border-left: 1px solid #cccccc; border-bottom: 1px solid #cccccc; border-right: 1px solid #cccccc; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; mso-line-height-rule: exactly" height="5" bgcolor="#ffffff"> </td>
</tr>
</tbody>
</table> </td>
</tr>
<tr>
<td id="footer-pattern" style="padding: 0px; border-collapse: collapse; padding: 12px 20px">
<table id="footer-pattern-container" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tbody>
<tr>
<td id="footer-pattern-text" class="mobile-resize-text" width="100%" style="padding: 0px; border-collapse: collapse; color: #999999; font-size: 12px; line-height: 18px; font-family: Arial, sans-serif; mso-line-height-rule: exactly; mso-text-raise: 2px"> This message was sent by Atlassian Jira <span id="footer-build-information">(v8.2.3#802003-<span title="5986657bbb45d2d15e7e179e83f09254924a6523" data-commit-id="5986657bbb45d2d15e7e179e83f09254924a6523}">sha1:5986657</span>)</span> </td>
<td id="footer-pattern-logo-desktop-container" valign="top" style="padding: 0px; border-collapse: collapse; padding-left: 20px; vertical-align: top">
<table style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt">
<tbody>
<tr>
<td id="footer-pattern-logo-desktop-padding" style="padding: 0px; border-collapse: collapse; padding-top: 3px"> <img id="footer-pattern-logo-desktop" src="https://issues.shibboleth.net/jira/images/mail/atlassian-email-logo.png" alt="Atlassian logo" title="Atlassian logo" width="191" height="24" class="image_fix"> </td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table> </td>
</tr>
</tbody>
</table>
</body>
</html>