<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Query Filter</title>
    <description>The latest articles on Forem by Query Filter (@query_filter_591122b53770).</description>
    <link>https://forem.com/query_filter_591122b53770</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3537837%2F9949c594-a967-47f3-93fa-058b6e1bece1.jpg</url>
      <title>Forem: Query Filter</title>
      <link>https://forem.com/query_filter_591122b53770</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/query_filter_591122b53770"/>
    <language>en</language>
    <item>
      <title>docker107</title>
      <dc:creator>Query Filter</dc:creator>
      <pubDate>Thu, 07 May 2026 16:46:31 +0000</pubDate>
      <link>https://forem.com/query_filter_591122b53770/docker107-451o</link>
      <guid>https://forem.com/query_filter_591122b53770/docker107-451o</guid>
      <description>&lt;p&gt;The reason you cannot find the file in the project's root directory is that &lt;code&gt;quantum/pom.xml&lt;/code&gt; is a &lt;strong&gt;relative path&lt;/strong&gt;. In Maven projects, this usually means the repository is a &lt;strong&gt;multi-module project&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Where is the file?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;pom.xml&lt;/code&gt; is located inside a subdirectory named &lt;strong&gt;&lt;code&gt;quantum&lt;/code&gt;&lt;/strong&gt;. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TeamCity Context:&lt;/strong&gt; In your TeamCity screenshot, the "Path to POM file" is &lt;code&gt;quantum/pom.xml&lt;/code&gt;. This tells the build agent to look inside the &lt;code&gt;quantum&lt;/code&gt; folder of your checked-out source code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jenkins Context:&lt;/strong&gt; If you are running the Jenkins job on the root level, but the settings are inside &lt;code&gt;quantum/pom.xml&lt;/code&gt;, Jenkins might be defaulting to a different parent &lt;code&gt;pom.xml&lt;/code&gt; or its own auto-generated settings, which explains why the artifacts are ending up in the "wrong group."&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Why the "Wrong Group" in Jenkins?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;If the TeamCity build was publishing to the correct group but Jenkins is not, the "Group ID" control is likely in one of two places:&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;1. The &lt;code&gt;&amp;lt;distributionManagement&amp;gt;&lt;/code&gt; section (Inside &lt;code&gt;quantum/pom.xml&lt;/code&gt;)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Open &lt;code&gt;quantum/pom.xml&lt;/code&gt; and look for this block. It defines the Artifactory URL and the target repository.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;distributionManagement&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;repository&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;artifactory-releases&lt;span class="nt"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;url&amp;gt;&lt;/span&gt;https://artifactrepository.citigroup.net/artifactory/libs-release-local&lt;span class="nt"&gt;&amp;lt;/url&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/repository&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/distributionManagement&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The Problem:&lt;/strong&gt; If Jenkins is not using the specific &lt;code&gt;quantum/pom.xml&lt;/code&gt; as its entry point, it won't see these deployment coordinates.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;2. The Jenkins Artifactory Plugin (Overriding the POM)&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;In Jenkins, check your Job Configuration. Many &lt;strong&gt;COMET&lt;/strong&gt; jobs use the "Artifactory Plugin" which has a section called &lt;strong&gt;"Target Repository"&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If this is filled out in Jenkins, it &lt;strong&gt;overrides&lt;/strong&gt; whatever is written in your &lt;code&gt;pom.xml&lt;/code&gt;. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Fix:&lt;/strong&gt; Ensure the "Target Repository" in Jenkins matches exactly what was used in TeamCity.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Action Plan for the "etsf" Migration&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To fix the group/package issue:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Locate the file:&lt;/strong&gt; Go to your terminal or IDE and run:
&lt;code&gt;find . -name "pom.xml" | grep quantum&lt;/code&gt;
This will confirm the exact disk location of the file you saw in the TeamCity screenshot.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Point Jenkins to it:&lt;/strong&gt; In your Jenkins "Build" step, change the &lt;strong&gt;Root POM&lt;/strong&gt; field from &lt;code&gt;pom.xml&lt;/code&gt; to &lt;code&gt;quantum/pom.xml&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Check for "Profiles":&lt;/strong&gt; In the TeamCity screenshot, look at the &lt;strong&gt;"Additional Maven command-line parameters"&lt;/strong&gt;. If there is a &lt;code&gt;-P some-profile-name&lt;/code&gt;, you must include that in Jenkins too. Often, the deployment logic is hidden inside a Maven Profile.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Verdict for your Rebuild:&lt;/strong&gt;&lt;br&gt;
The "wrong group" is almost certainly caused by Jenkins targeting the &lt;strong&gt;root directory&lt;/strong&gt; instead of the &lt;strong&gt;quantum subdirectory&lt;/strong&gt;. Aligning the "Root POM" path in Jenkins to &lt;code&gt;quantum/pom.xml&lt;/code&gt; should restore the correct inheritance and publishing coordinates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does your Jenkins job currently have "pom.xml" or "quantum/pom.xml" in the Root POM field?&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>docker106</title>
      <dc:creator>Query Filter</dc:creator>
      <pubDate>Thu, 07 May 2026 15:44:31 +0000</pubDate>
      <link>https://forem.com/query_filter_591122b53770/docker106-4b8n</link>
      <guid>https://forem.com/query_filter_591122b53770/docker106-4b8n</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;Migration Findings Report: etsf Library (Java 6 to Java 8)&lt;/strong&gt;
&lt;/h3&gt;




&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Category&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Specific Findings&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Missing Infrastructure&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Core &lt;code&gt;com.citigroup.valengine&lt;/code&gt; components (&lt;code&gt;ValidationContext&lt;/code&gt;, &lt;code&gt;ValidationResult&lt;/code&gt;) are missing. Found only as fragmented "shadow" re-implementations in other apps; likely orphaned in retired BitBucket archives.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Java 8 Compliance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Numerous &lt;code&gt;Map&lt;/code&gt; and &lt;code&gt;Class&lt;/code&gt; assignments failed compilation due to stricter type inference, requiring manual casting to resolve legacy raw-type ambiguities.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Test Suite Regression&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;594 tests&lt;/strong&gt; are currently failing due to missing dependencies. These classes span EMMA server interfaces, regional business logic (Japan/Korea), and core CPLS persistence and caching layers.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h4&gt;
  
  
  &lt;strong&gt;Identified Missing Classes (Test Dependencies)&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;com.citigroup.get.emma.server.OpenTypeIF&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BaseCacheChangeListener&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CplsSupervisoryApprovalCacheToDbPersistentStore&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;JPNSupervisorProviderImpl&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;KRSupervisorProviderImpl&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SupervisorDataProvider&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CPLSBeanInitializer&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ApprovalCacheChangeListener&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ApprovalOrderPersister&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;MessageFilterImpl&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ConvertAuditFields&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Verdict&lt;/strong&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;High Risk / Blocked.&lt;/strong&gt; The current rebuild effort is operating on "incomplete intelligence." Compiling the code via manual casting is a cosmetic fix; however, the absence of the &lt;code&gt;valengine&lt;/code&gt; source and the failure of nearly 600 tests suggests that the library’s functional core is compromised. Until the authoritative legacy libraries are retrieved from BitBucket archives or found in Artifactory, the library cannot be certified as stable for Java 8 production environments.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
    <item>
      <title>docker105</title>
      <dc:creator>Query Filter</dc:creator>
      <pubDate>Wed, 06 May 2026 18:15:15 +0000</pubDate>
      <link>https://forem.com/query_filter_591122b53770/docker105-21do</link>
      <guid>https://forem.com/query_filter_591122b53770/docker105-21do</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;find ~/.gradle/caches/modules-2/files-2.1 &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s2"&gt;"*.jar"&lt;/span&gt; &lt;span class="nt"&gt;-print0&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
| xargs &lt;span class="nt"&gt;-0&lt;/span&gt; &lt;span class="nt"&gt;-P&lt;/span&gt; 8 &lt;span class="nt"&gt;-I&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; sh &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s1"&gt;'jar tf "{}" | grep -q "com/company/MyClass.class" &amp;amp;&amp;amp; echo "FOUND in {}"'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>docker104</title>
      <dc:creator>Query Filter</dc:creator>
      <pubDate>Wed, 06 May 2026 16:24:48 +0000</pubDate>
      <link>https://forem.com/query_filter_591122b53770/docker104-4k2m</link>
      <guid>https://forem.com/query_filter_591122b53770/docker104-4k2m</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;plugins&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="s1"&gt;'java-library'&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;group&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'com.citi.158825.ETSFb'&lt;/span&gt;
&lt;span class="n"&gt;version&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'1.0-A20'&lt;/span&gt;

&lt;span class="n"&gt;java&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;toolchain&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;languageVersion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;JavaLanguageVersion&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;of&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Adjust to 11 or 21 if needed&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;sourceSets&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;main&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// This tells Gradle that 'src/main/config' is a resource folder&lt;/span&gt;
        &lt;span class="n"&gt;resources&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;srcDirs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'src/main/resources'&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'src/main/config'&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;jar&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;archiveBaseName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'etsf'&lt;/span&gt;
    &lt;span class="n"&gt;manifest&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
            &lt;span class="s1"&gt;'Implementation-Title'&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'CPLS etsf Library'&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;'Implementation-Version'&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;archiveVersion&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;'Build-Time'&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Date&lt;/span&gt;&lt;span class="o"&gt;().&lt;/span&gt;&lt;span class="na"&gt;format&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"yyyy-MM-dd'T'HH:mm:ssZ"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
        &lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>docker103</title>
      <dc:creator>Query Filter</dc:creator>
      <pubDate>Wed, 06 May 2026 16:15:13 +0000</pubDate>
      <link>https://forem.com/query_filter_591122b53770/docker103-3o4f</link>
      <guid>https://forem.com/query_filter_591122b53770/docker103-3o4f</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight gradle"&gt;&lt;code&gt;&lt;span class="n"&gt;plugins&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="s1"&gt;'java-library'&lt;/span&gt; &lt;span class="c1"&gt;// Essential for creating a library JAR&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;group&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'com.citi.158825.ETSFb'&lt;/span&gt;
&lt;span class="n"&gt;version&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'1.0-A20'&lt;/span&gt;

&lt;span class="n"&gt;java&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Matches your CPLS target environment (Java 6/8/21)&lt;/span&gt;
    &lt;span class="n"&gt;toolchain&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;languageVersion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;JavaLanguageVersion&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;of&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; 
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;repositories&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;mavenCentral&lt;/span&gt;&lt;span class="o"&gt;()&lt;/span&gt;
    &lt;span class="c1"&gt;// If you need to pull existing jars from your Artifactory:&lt;/span&gt;
    &lt;span class="n"&gt;maven&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="s2"&gt;"https://maven-icg-prod.com/artifactory/libs-release"&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;dependencies&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Add any external jars here&lt;/span&gt;
    &lt;span class="c1"&gt;// implementation 'org.apache.commons:commons-lang3:3.12.0'&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;tasks&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;named&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'jar'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;manifest&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;attributes&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;
            &lt;span class="s1"&gt;'Implementation-Title'&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'ETSF Library'&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;'Implementation-Version'&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;archiveVersion&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;'Built-By'&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getProperty&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'user.name'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
        &lt;span class="o"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>docker102</title>
      <dc:creator>Query Filter</dc:creator>
      <pubDate>Wed, 06 May 2026 14:38:48 +0000</pubDate>
      <link>https://forem.com/query_filter_591122b53770/docker102-2d06</link>
      <guid>https://forem.com/query_filter_591122b53770/docker102-2d06</guid>
      <description>&lt;p&gt;This proposal is structured for management to emphasize a structured, low-risk approach to recovering the &lt;code&gt;etsf&lt;/code&gt; library while addressing the practicalities of cross-team collaboration.&lt;/p&gt;




&lt;h2&gt;
  
  
  Management Proposal: Recovery Strategy for Legacy CPLS Artifacts
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Executive Summary
&lt;/h3&gt;

&lt;p&gt;Recent audit of the &lt;strong&gt;CPLS&lt;/strong&gt; (formerly COMET) application stack has identified the &lt;code&gt;etsf&lt;/code&gt; library as a critical dependency that is currently present in Artifactory but missing from the GitHub source code repository. Given its 2025 activity, this is likely a migration "orphan." I propose a &lt;strong&gt;Reverse-Chronological Forensic Recovery&lt;/strong&gt; (Divide-and-Conquer) to restore this asset from BitBucket backups.&lt;/p&gt;

&lt;h3&gt;
  
  
  Proposed Recovery Methodology
&lt;/h3&gt;

&lt;p&gt;We will use a search-and-validate loop to minimize time spent on irrelevant legacy data:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Phase 1: The "High-Confidence" Window (Q3 2025)&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Action:&lt;/strong&gt; Direct the BitBucket Infrastructure team to restore the &lt;strong&gt;Full Backup from Q3 2025&lt;/strong&gt; (aligned with the last Artifactory update on Aug 25, 2025).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Validation:&lt;/strong&gt; Compare restored code against the disassembled JAR from Artifactory using class-level checksums.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Phase 2: Narrowing (Weekly Incrementals)&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Action:&lt;/strong&gt; If the Q3 backup matches, pull the subsequent weekly incrementals to find the &lt;em&gt;absolute latest&lt;/em&gt; commit before the library was deleted or migrated.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Phase 3: Fallback (Quarterly Regression)&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Action:&lt;/strong&gt; If Q3 2025 is empty, move back in quarterly increments (Q2 2025, Q1 2025, etc.) until the source is located.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Practicality &amp;amp; Resource Assessment
&lt;/h3&gt;

&lt;p&gt;Working with the Central Hub/Infrastructure teams is practical, but success depends on precise documentation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Is it "Monthly"?&lt;/strong&gt; No. If we provide the specific &lt;strong&gt;Artifact ID&lt;/strong&gt; (&lt;code&gt;etsf&lt;/code&gt;) and &lt;strong&gt;Group ID&lt;/strong&gt; (&lt;code&gt;com.citi.158825.ETSFb&lt;/code&gt;), a search of a specific backup volume usually takes &lt;strong&gt;24–48 hours&lt;/strong&gt; for the team to run. The "months" of delay usually come from vague requests; specific IDs and dates bypass this.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The "Ticket" Requirement:&lt;/strong&gt; &lt;strong&gt;Yes, an official ticket is mandatory.&lt;/strong&gt; In most enterprise environments, Infrastructure teams cannot access backup vaults without a tracked request for audit and compliance purposes.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Action Plan &amp;amp; Internal Instructions
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Required Ticket Details
&lt;/h4&gt;

&lt;p&gt;To avoid back-and-forth, the ticket should include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Service:&lt;/strong&gt; Source Control Recovery (BitBucket Legacy)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Target Repo/Path:&lt;/strong&gt; &lt;code&gt;com/citi/158825/etsf&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Specific GroupID:&lt;/strong&gt; &lt;code&gt;com.citi.158825.ETSFb&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Priority Date:&lt;/strong&gt; August 25, 2025 (Last known deployment)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Request:&lt;/strong&gt; "Restore the repository state from the last full backup prior to Sept 1, 2025."&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Collaborative Instructions for Hub Teams
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;To BitBucket Admins:&lt;/strong&gt; "Identify the last active 'Project Key' associated with the &lt;code&gt;etsf&lt;/code&gt; artifact. If the repo was deleted, provide the deletion log entry to identify the decommissioning owner."&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;To GitHub Migration Team:&lt;/strong&gt; "Audit the 'Migration Exclusion List' for the 2025-2026 cycle to see if &lt;code&gt;158825&lt;/code&gt; was intentionally scoped out due to its Java 6 status."&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Risk Mitigation
&lt;/h3&gt;

&lt;p&gt;By comparing any found source code against the &lt;strong&gt;disassembled code from Artifactory&lt;/strong&gt;, we eliminate the risk of "version mismatch." We are not just looking for &lt;em&gt;any&lt;/em&gt; code; we are looking for the code that matches the binary currently running in our environment. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommendation:&lt;/strong&gt; Proceed with a High-Priority Infrastructure ticket today to initiate the Q3 2025 search.&lt;/p&gt;

&lt;p&gt;Does the CPLS migration timeline allow for a 48-hour buffer to wait for these backup results?&lt;/p&gt;

</description>
    </item>
    <item>
      <title>docker101</title>
      <dc:creator>Query Filter</dc:creator>
      <pubDate>Wed, 06 May 2026 14:05:46 +0000</pubDate>
      <link>https://forem.com/query_filter_591122b53770/docker101-6o6</link>
      <guid>https://forem.com/query_filter_591122b53770/docker101-6o6</guid>
      <description>&lt;h2&gt;
  
  
  Based on disassembled code from Artifactory: maven-icg-prod/com/citi/158825
&lt;/h2&gt;

&lt;p&gt;This report consolidates the library metrics, focusing on the Java versioning transition and the specific file distribution within the &lt;code&gt;/opt/CPLS&lt;/code&gt; environment.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Artifact Name&lt;/th&gt;
&lt;th&gt;Version&lt;/th&gt;
&lt;th&gt;Java Release Year&lt;/th&gt;
&lt;th&gt;Java Version&lt;/th&gt;
&lt;th&gt;Major Version&lt;/th&gt;
&lt;th&gt;Java Files (Total)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dds&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2.0 B3&lt;/td&gt;
&lt;td&gt;2006&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Java 6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;configserverJMXClient&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1.0 A1&lt;/td&gt;
&lt;td&gt;2006&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Java 6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;49&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;emmacommon&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1.0 A0&lt;/td&gt;
&lt;td&gt;2004&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Java 5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;49&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;emmacommon&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1.2 C0&lt;/td&gt;
&lt;td&gt;2004&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Java 5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;49&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;emmacommon&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2.0 D0&lt;/td&gt;
&lt;td&gt;2006&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Java 6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;emmaserver&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1.0 A0&lt;/td&gt;
&lt;td&gt;2004&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Java 5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;49&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;emmaserver&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1.2 C0&lt;/td&gt;
&lt;td&gt;2004&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Java 5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;49&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;emmaserver&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2.0 D0&lt;/td&gt;
&lt;td&gt;2006&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Java 6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;etsf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1.0 A20&lt;/td&gt;
&lt;td&gt;2006&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Java 6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;etsf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1.0 A6&lt;/td&gt;
&lt;td&gt;2006&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Java 6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;50&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  Key Takeaways for Deployment
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Runtime Requirements:&lt;/strong&gt; Since the majority of these artifacts (including the largest, &lt;code&gt;etsf&lt;/code&gt;) are &lt;strong&gt;Major Version 50&lt;/strong&gt;, the target environment must run &lt;strong&gt;JRE 6&lt;/strong&gt; or higher. &lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Version Discrepancy:&lt;/strong&gt; Note that &lt;code&gt;emmacommon&lt;/code&gt; and &lt;code&gt;emmaserver&lt;/code&gt; have legacy versions (1.0 and 1.2) compiled in &lt;strong&gt;Java 5&lt;/strong&gt;. While these will run on a newer JVM, the &lt;strong&gt;2.0&lt;/strong&gt; versions represent the current standard for the 2006 baseline.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;CPLS Application Structure:&lt;/strong&gt; The high file count in &lt;code&gt;etsf&lt;/code&gt; suggests it is the primary functional component of the &lt;strong&gt;CPLS&lt;/strong&gt; suite, while &lt;code&gt;emmacommon&lt;/code&gt; remains a lightweight dependency.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>docker100</title>
      <dc:creator>Query Filter</dc:creator>
      <pubDate>Mon, 04 May 2026 13:54:07 +0000</pubDate>
      <link>https://forem.com/query_filter_591122b53770/docker100-2jpp</link>
      <guid>https://forem.com/query_filter_591122b53770/docker100-2jpp</guid>
      <description>&lt;h2&gt;
  
  
  Update: RPM Versioning &amp;amp; Strategy for CPLS
&lt;/h2&gt;

&lt;p&gt;Hi Team,&lt;/p&gt;

&lt;p&gt;Our LightSpeed support ticket confirmed that high-level user-defined variables are not currently passed into build technologies like Tekton. As a result, we are adopting a &lt;strong&gt;&lt;code&gt;version.properties&lt;/code&gt;&lt;/strong&gt; file (adjacent to &lt;code&gt;build.gradle&lt;/code&gt;) as our primary, &lt;strong&gt;Rank #1&lt;/strong&gt; configuration method.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; While &lt;code&gt;version.properties&lt;/code&gt; is our standard, it can be &lt;strong&gt;superseded by Tekton variables&lt;/strong&gt; if an override is deemed necessary.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example &lt;code&gt;version.properties&lt;/code&gt; File:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight properties"&gt;&lt;code&gt;&lt;span class="c"&gt;# Primary build configuration (Rank #1)
&lt;/span&gt;&lt;span class="py"&gt;pkgVersion&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;9.1.94&lt;/span&gt;
&lt;span class="py"&gt;pkgRelease&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;6&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Key Implementation Details:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Resolution Priority:&lt;/strong&gt; 

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Properties File:&lt;/strong&gt; (Primary/Standard)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CLI Parameters:&lt;/strong&gt; (Optional overrides, e.g., &lt;code&gt;-PpkgVersion&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Defaults:&lt;/strong&gt; (&lt;code&gt;0.0.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Side-by-Side Installation:&lt;/strong&gt; Artifacts are identified as &lt;code&gt;CPLS-&amp;lt;AppVersion&amp;gt;-&amp;lt;AppRelease&amp;gt;&lt;/code&gt;. This ensures builds are distinct packages and previous installs remain intact.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Status:&lt;/strong&gt; Verified on branch &lt;code&gt;exper_leonid_comet_lse_mig_apr20&lt;/code&gt;. Please merge when ready.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Optional CLI Override Example:&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;./gradlew buildRpm -PpkgVersion="9.1.94" -PpkgRelease="6"&lt;/code&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>docker99</title>
      <dc:creator>Query Filter</dc:creator>
      <pubDate>Thu, 30 Apr 2026 22:33:58 +0000</pubDate>
      <link>https://forem.com/query_filter_591122b53770/docker99-51ik</link>
      <guid>https://forem.com/query_filter_591122b53770/docker99-51ik</guid>
      <description>&lt;p&gt;Subject: Regarding Persistent Test Messages in the &lt;strong&gt;CTI_QA&lt;/strong&gt; Environment&lt;/p&gt;

&lt;p&gt;Dear Customers,&lt;/p&gt;

&lt;p&gt;Please accept my sincere apologies for the "LEONID CITI DEMO" messages that have been appearing within the system. I understand that these persistent messages have caused frustration and confusion, and I want to provide a clear explanation of why this occurred and how we are resolving it.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What Happened&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;During testing, I utilized two &lt;strong&gt;Persistent Queues&lt;/strong&gt;—&lt;code&gt;my_persistent_queue&lt;/code&gt; and &lt;code&gt;my_persistent_queue123&lt;/code&gt;—which I bound to several topics, including &lt;code&gt;US/COMET/INC/ORDER/CASH/COES/SLSI&lt;/code&gt;. In the Solace ecosystem, a Persistent Queue acts as a physical "mailbox" on the broker's disk. Unlike a standard topic, which is ephemeral, a message delivered to a persistent queue will remain there &lt;strong&gt;indefinitely&lt;/strong&gt; until it is manually purged or successfully acknowledged by a consuming application.&lt;/p&gt;

&lt;p&gt;Because these queues were linked to multiple topics, they captured and stored every "LEONID" test injection across several routing paths. These messages have remained "surfacing" because they were never consumed and removed from the broker’s storage.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The Resolution Plan&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;To permanently stop these messages from appearing, the "mailboxes" must be cleared and their links to the production-style topics must be severed. I have provided a guide below for the necessary actions within the Solace PubSub+ Manager.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1. Locate Queues&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Find &lt;code&gt;my_persistent_queue&lt;/code&gt; and &lt;code&gt;my_persistent_queue123&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;Identifies the specific test containers.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2. Remove Bindings&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open the &lt;strong&gt;Subscriptions&lt;/strong&gt; tab and delete all topic bindings.&lt;/td&gt;
&lt;td&gt;Stops the queues from "attracting" any future messages.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;3. Purge Messages&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Select &lt;strong&gt;Action &amp;gt; Purge&lt;/strong&gt;.&lt;/td&gt;
&lt;td&gt;Wipes the existing demo messages from the disk.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;4. Delete Queues&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Select &lt;strong&gt;Action &amp;gt; Delete&lt;/strong&gt;.&lt;/td&gt;
&lt;td&gt;Permanently removes the test infrastructure to prevent recurrence.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;I am currently auditing our source code and deployment scripts to ensure these test queues are not recreated in future builds. Thank you for your patience as we clean up these artifacts.&lt;/p&gt;

&lt;p&gt;Best regards,&lt;/p&gt;

&lt;p&gt;Leonid&lt;br&gt;
Software &amp;amp; DevOps Engineer&lt;/p&gt;

</description>
    </item>
    <item>
      <title>docker98</title>
      <dc:creator>Query Filter</dc:creator>
      <pubDate>Thu, 30 Apr 2026 22:25:19 +0000</pubDate>
      <link>https://forem.com/query_filter_591122b53770/docker98-3i11</link>
      <guid>https://forem.com/query_filter_591122b53770/docker98-3i11</guid>
      <description>&lt;p&gt;Step,Action,Description&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Access VPN,Open Solace Manager,Log into the 156783_COMET_US_CTI_QA Message VPN.&lt;/li&gt;
&lt;li&gt;Locate Queues,Navigate to Messaging &amp;gt; Queues,Search for my_persistent_queue and my_persistent_queue123.&lt;/li&gt;
&lt;li&gt;Remove All Bindings,Open Subscriptions Tab,Click the queue name and go to the Subscriptions tab. Delete the binding for US/COMET/INC/ORDER/CASH/COES/SLSI and any other related topics like US/CPLS/&amp;gt; or wildcard variants.&lt;/li&gt;
&lt;li&gt;Clear Content,Select Action &amp;gt; Purge,"This wipes the ""Sept 2025"" demo messages currently on disk without deleting the queue itself."&lt;/li&gt;
&lt;li&gt;Final Delete,Select Action &amp;gt; Delete,Recommended. Permanently remove these test queues to prevent them from capturing future traffic.&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>docker97</title>
      <dc:creator>Query Filter</dc:creator>
      <pubDate>Thu, 30 Apr 2026 20:02:10 +0000</pubDate>
      <link>https://forem.com/query_filter_591122b53770/docker97-33b3</link>
      <guid>https://forem.com/query_filter_591122b53770/docker97-33b3</guid>
      <description>&lt;p&gt;Based on the screenshot you provided, you have successfully located the &lt;strong&gt;Topic Endpoint (Queue)&lt;/strong&gt; where these messages are residing. The queue name is &lt;code&gt;DTE_156783_US_ExtInc_cash_coes_sls1_Q_0&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Since you have already selected the checkboxes for several messages, you are very close to deleting them. Here is how to finish the process:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Identify the "LEONID" Message
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  In the list under &lt;strong&gt;Messages Queued&lt;/strong&gt;, click the small &lt;strong&gt;right-facing arrow (&lt;code&gt;&amp;gt;&lt;/code&gt;)&lt;/strong&gt; next to the checkbox for a Message ID.&lt;/li&gt;
&lt;li&gt;  This will expand the message details. Look at the &lt;strong&gt;Payload&lt;/strong&gt; or &lt;strong&gt;Content&lt;/strong&gt; section to find the "LEONID CITI DEMO" text.&lt;/li&gt;
&lt;li&gt;  Note: The messages in your screenshot are from &lt;strong&gt;September 15 &amp;amp; 16, 2025&lt;/strong&gt;. If the "LEONID" message was sent "last fall," you may need to scroll down or use the filter to find older messages.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Delete the Selected Messages
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Once you have checked the boxes for the specific messages you want to remove (as you have started doing in the image):&lt;/li&gt;
&lt;li&gt;  Click the &lt;strong&gt;"Action"&lt;/strong&gt; button located at the top right of the message list (next to the filter/settings icons).&lt;/li&gt;
&lt;li&gt;  Select &lt;strong&gt;Delete&lt;/strong&gt; from the dropdown menu.&lt;/li&gt;
&lt;li&gt;  Confirm the deletion in the pop-up prompt.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Using the Filter (Faster)
&lt;/h3&gt;

&lt;p&gt;Since there are 81 messages queued and the "LEONID" message is driving people crazy, it might be easier to filter for it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Click the &lt;strong&gt;Filter icon&lt;/strong&gt; (three horizontal lines/sliders) on the far right, above the message list.&lt;/li&gt;
&lt;li&gt; Search for &lt;code&gt;LEONID&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt; If the message appears, select it and use the &lt;strong&gt;Action &amp;gt; Delete&lt;/strong&gt; flow.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Important Observation
&lt;/h3&gt;

&lt;p&gt;Your screenshot shows that these messages have &lt;strong&gt;0 Redeliveries&lt;/strong&gt;. This means the "annoying" message isn't actually being sent to an application and failing; it is simply sitting in the queue. If people are seeing it "surface," it's likely because an application is performing a "Browse" of the queue rather than "Consuming" it, or they are looking at the same Solace Manager screen you are.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Caution:&lt;/strong&gt; Ensure that you only check the boxes for the specific "DEMO" messages. Any messages with larger attachment sizes (like the ~1850B ones) might be actual production orders that you do not want to delete.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>docker95</title>
      <dc:creator>Query Filter</dc:creator>
      <pubDate>Thu, 30 Apr 2026 19:56:08 +0000</pubDate>
      <link>https://forem.com/query_filter_591122b53770/docker95-1j4g</link>
      <guid>https://forem.com/query_filter_591122b53770/docker95-1j4g</guid>
      <description>&lt;p&gt;Dealing with a "ghost" message that keeps surfacing on a Solace broker usually implies it is trapped in a &lt;strong&gt;Queue&lt;/strong&gt; with a high "Maximum Redelivery" count or it's sitting in a &lt;strong&gt;Dead Letter Queue (DLQ)&lt;/strong&gt; that is being re-polled. &lt;/p&gt;

&lt;p&gt;Since you have the topic string &lt;code&gt;US/COMET/INC/ORDER/CASH/COES/SLSI&lt;/code&gt;, you need to identify which &lt;strong&gt;Queue&lt;/strong&gt; is subscribed to that topic and then purge the specific message.&lt;/p&gt;

&lt;p&gt;Here is the step-by-step guide to deleting it using the &lt;strong&gt;Solace PubSub+ Manager&lt;/strong&gt; (GUI).&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Identify the Queue
&lt;/h3&gt;

&lt;p&gt;In Solace, messages aren't usually "deleted" from a topic; they are deleted from the &lt;strong&gt;Queues&lt;/strong&gt; that attract those topics.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Log into your &lt;strong&gt;Solace PubSub+ Manager&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt; Go to &lt;strong&gt;Queues&lt;/strong&gt; in the left-hand sidebar.&lt;/li&gt;
&lt;li&gt; Look for a queue that has a &lt;strong&gt;Subscription&lt;/strong&gt; matching your topic: &lt;code&gt;US/COMET/INC/ORDER/CASH/COES/SLSI&lt;/code&gt;.

&lt;ul&gt;
&lt;li&gt;  &lt;em&gt;Tip:&lt;/em&gt; If you aren't sure which queue it is, look for the one with a non-zero "Messages Queued" count or "Redelivered" stats.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  2. Browse the Messages
&lt;/h3&gt;

&lt;p&gt;Once you find the likely queue:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Click on the &lt;strong&gt;Queue Name&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt; Click the &lt;strong&gt;Messages&lt;/strong&gt; tab at the top.&lt;/li&gt;
&lt;li&gt; Click &lt;strong&gt;Query Messages&lt;/strong&gt; (this will show you a list of messages currently sitting in that queue).&lt;/li&gt;
&lt;li&gt; Look for the message containing "LEONID CITI DEMO". You can usually see a preview of the payload.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  3. Delete the Specific Message
&lt;/h3&gt;

&lt;p&gt;If you find the specific annoying message:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Select the checkbox next to that specific message.&lt;/li&gt;
&lt;li&gt; Click &lt;strong&gt;Delete&lt;/strong&gt; (usually a trash can icon or a button at the top of the list).&lt;/li&gt;
&lt;li&gt; Confirm the deletion.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Alternative: Selective Purge via "Selector"
&lt;/h3&gt;

&lt;p&gt;If the queue has thousands of messages and you can't find it manually, you can use a &lt;strong&gt;Queue Purge with a Selector&lt;/strong&gt;. &lt;em&gt;Note: Be very careful here not to purge the whole queue.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If your Solace version supports it in the UI:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Go to the &lt;strong&gt;Queue&lt;/strong&gt; &amp;gt; &lt;strong&gt;Messages&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt; Use the &lt;strong&gt;Filter/Search&lt;/strong&gt; box.&lt;/li&gt;
&lt;li&gt; Enter a string like &lt;code&gt;text LIKE '%LEONID CITI DEMO%'&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt; Once filtered, delete only those results.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  If you are using CLI (SolAdmin / SEMP)
&lt;/h3&gt;

&lt;p&gt;If you prefer the command line, you can use the following logic (replace &lt;code&gt;&amp;lt;queue-name&amp;gt;&lt;/code&gt; with your actual queue name):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# To clear the ENTIRE queue (Nuclear option - only if all Sept 2025 msgs are junk)&lt;/span&gt;
admin
  message-spool message-vpn &amp;lt;your-vpn-name&amp;gt;
    delete-messages queue &amp;lt;queue-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Why does it keep "surfacing"?
&lt;/h3&gt;

&lt;p&gt;If the message reappears &lt;em&gt;after&lt;/em&gt; you delete it, one of two things is happening:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Redelivery Loop:&lt;/strong&gt; An application is consuming it, failing to acknowledge (ACK) it because the data is "bad," and Solace is putting it back on the queue.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;External Re-publisher:&lt;/strong&gt; Some automated test script or "replay" tool in your &lt;code&gt;UKPROD&lt;/code&gt; environment might be re-sending this "CITI DEMO" message periodically. If you delete it and it comes back with a &lt;em&gt;new&lt;/em&gt; timestamp, you need to find the &lt;strong&gt;Producer&lt;/strong&gt; (the app sending it) and stop it there.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; If those "Sept 2025" messages are valid business orders, &lt;strong&gt;do not&lt;/strong&gt; use the "Purge Queue" button, as that will wipe out all messages. Only delete the specific Message ID associated with the "LEONID" text.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
