<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Java developers &#8211; Best DevOps</title>
	<atom:link href="https://www.bestdevops.com/tag/java-developers/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bestdevops.com</link>
	<description>Lets Learn, Do it &#38; Share! Thats a Best DevOps!!!</description>
	<lastBuildDate>Wed, 14 Oct 2026 06:35:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>5 Jenkins Alternatives for Java Developers</title>
		<link>https://www.bestdevops.com/5-jenkins-alternatives-for-java-developers/</link>
					<comments>https://www.bestdevops.com/5-jenkins-alternatives-for-java-developers/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Tue, 31 Mar 2020 06:44:41 +0000</pubDate>
				<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[CD server]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[GitLab]]></category>
		<category><![CDATA[Java developers]]></category>
		<category><![CDATA[Software Developers]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=11488</guid>

					<description><![CDATA[Jenkins is the go-to CI/CD tool in the Java world, but it isn't the only option. Explore five credible alternatives—Bamboo, GitLab, Spinnaker, TeamCity, and CloudBees—to find the best fit for your development pipeline.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>This article is based on a summary originally sourced from <a href="https://www.theserverside.com" rel="noopener">theserverside.com</a>. Details have been expanded for clarity and accuracy.</em></p>



<h2 class="wp-block-heading">Why Look Beyond Jenkins?</h2>



<p class="wp-block-paragraph">Jenkins is one of the most widely adopted open-source CI/CD tools in the Java ecosystem. Its massive plugin library, active community, and flexibility make it a default choice for many teams. However, Jenkins is not universally the right fit. Maintenance overhead, a dated UI, complex plugin management, and limited native support for modern cloud-native workflows lead many teams to evaluate alternatives.</p>



<p class="wp-block-paragraph">The five tools below cover a broad range of team sizes, workflows, and infrastructure preferences. Each addresses a different pain point that Jenkins users commonly encounter.</p>



<h2 class="wp-block-heading">1. Atlassian Bamboo — Best for Teams Already in the Atlassian Ecosystem</h2>



<p class="wp-block-paragraph">Atlassian offers a tightly integrated suite of DevOps tools: Jira for issue tracking, Bitbucket for source control, and Confluence for documentation. If your organization already relies on one or more of these products, <strong>Bamboo</strong> is a natural extension of that ecosystem rather than an isolated CI server.</p>



<ul class="wp-block-list">
<li><strong>Native Jira and Bitbucket integration:</strong> Build results, deployment statuses, and test results surface directly in Jira tickets and Bitbucket pull requests without extra configuration.</li>
<li><strong>Agents and plans:</strong> Bamboo uses a plan-and-stage model to define build pipelines, which maps well to teams familiar with Jira&#8217;s project structure.</li>
<li><strong>Licensing model:</strong> Bamboo is a commercial product. Teams moving from free Jenkins should factor in licensing costs.</li>
</ul>



<p class="wp-block-paragraph"><strong>Best fit:</strong> Organizations that have standardized on Atlassian tooling and want a CI/CD server that shares the same vendor support, user management, and pricing tier.</p>



<h2 class="wp-block-heading">2. GitLab CI/CD — Best for Teams Hosted on GitLab</h2>



<p class="wp-block-paragraph">GitLab is more than a Git hosting service. Its built-in CI/CD feature set makes it a full DevOps platform covering source control, issue tracking, container registry, security scanning, and deployment pipelines—all within a single interface.</p>



<ul class="wp-block-list">
<li><strong>Pipeline-as-code:</strong> Pipelines are defined in a <code>.gitlab-ci.yml</code> file committed to the repository, keeping pipeline configuration version-controlled alongside application code.</li>
<li><strong>Runners:</strong> GitLab uses distributed runners (similar to Jenkins agents) that can be self-hosted or provided by GitLab&#8217;s SaaS offering.</li>
<li><strong>No separate CI server to maintain:</strong> For teams already on GitLab, there is no additional infrastructure to manage for basic CI/CD workflows.</li>
<li><strong>GitHub migration path:</strong> Organizations that moved from GitHub to GitLab—especially following Microsoft&#8217;s acquisition of GitHub—often find it practical to consolidate on GitLab&#8217;s CI tooling rather than maintaining a separate Jenkins instance.</li>
</ul>



<p class="wp-block-paragraph"><strong>Best fit:</strong> Teams that host code on GitLab and want to eliminate the overhead of managing a separate CI server.</p>



<h2 class="wp-block-heading">3. Spinnaker — Best for Cloud-Native Continuous Delivery</h2>



<p class="wp-block-paragraph">Spinnaker was originally developed at Netflix and open-sourced to support complex, multi-cloud continuous delivery at scale. It is worth noting that Spinnaker is primarily a <strong>continuous delivery (CD)</strong> tool rather than a full CI solution—it is often paired with a separate CI system such as Jenkins or GitHub Actions to handle the build phase.</p>



<ul class="wp-block-list">
<li><strong>Multi-cloud deployments:</strong> Spinnaker has first-class integrations with AWS, Google Cloud, Microsoft Azure, Kubernetes, and VMware, among others.</li>
<li><strong>Deployment strategies:</strong> It supports advanced deployment patterns such as blue/green, canary, and rolling deployments out of the box.</li>
<li><strong>Artifact management:</strong> Spinnaker tracks versioned artifacts (Docker images, Debian packages, etc.) through their entire delivery lifecycle.</li>
<li><strong>Operational complexity:</strong> Spinnaker has a steeper learning curve and higher operational overhead than Jenkins. It is better suited to platform engineering teams than to small development groups.</li>
</ul>



<p class="wp-block-paragraph"><strong>Best fit:</strong> Organizations deploying to multiple cloud providers or Kubernetes clusters that need sophisticated deployment strategies and artifact promotion pipelines.</p>



<h2 class="wp-block-heading">4. TeamCity — Best for Developer-Centric Agile Teams</h2>



<p class="wp-block-paragraph">TeamCity is a CI/CD server developed by JetBrains, the company behind IntelliJ IDEA, the dominant Java IDE. That heritage is evident in TeamCity&#8217;s developer-focused feature set.</p>



<ul class="wp-block-list">
<li><strong>IDE integration:</strong> TeamCity integrates with IntelliJ IDEA (and other JetBrains IDEs) so developers can inspect build results, run personal builds, and monitor pipelines without leaving their development environment.</li>
<li><strong>Build configuration DSL:</strong> Pipelines can be defined as Kotlin DSL scripts, which are version-controlled and reviewable like application code.</li>
<li><strong>Test intelligence:</strong> TeamCity tracks test history and can reorder test execution to surface failing tests faster—a concrete productivity improvement for Java teams with large test suites.</li>
<li><strong>Free tier available:</strong> JetBrains offers a free tier with a limited number of build configurations, making TeamCity accessible for smaller teams evaluating it before committing to a license.</li>
</ul>



<p class="wp-block-paragraph"><strong>Best fit:</strong> Java development teams that prioritize developer experience, already use JetBrains IDEs, or want Kotlin-based pipeline-as-code.</p>



<h2 class="wp-block-heading">5. CloudBees CI — Best for Teams That Want Enterprise Jenkins</h2>



<p class="wp-block-paragraph">If the real issue with open-source Jenkins is not the tool itself but the lack of professional support, governance, and enterprise-grade reliability, CloudBees CI (formerly CloudBees Core) is worth evaluating. It is built on top of Jenkins and extends it rather than replacing it.</p>



<ul class="wp-block-list">
<li><strong>Enterprise support:</strong> CloudBees provides SLAs, security patches, and certified plugin versions—addressing one of the most common complaints about managing open-source Jenkins at scale.</li>
<li><strong>Multi-team operations:</strong> CloudBees CI supports a managed controller model where individual teams can have isolated Jenkins instances managed from a central operations center, reducing the &#8220;shared Jenkins&#8221; problem.</li>
<li><strong>Deployment options:</strong> Available as an on-premises installation or as a cloud-hosted service, including Kubernetes-native deployments.</li>
<li><strong>Pipeline compatibility:</strong> Existing Jenkins pipelines (Jenkinsfiles) run on CloudBees CI without modification, lowering migration risk.</li>
</ul>



<p class="wp-block-paragraph"><strong>Best fit:</strong> Enterprises that have invested heavily in Jenkins pipelines and want professional support, better multi-team governance, and a supported upgrade path rather than a full tool migration.</p>



<h2 class="wp-block-heading">Choosing the Right Jenkins Alternative</h2>



<p class="wp-block-paragraph">No single tool is the right answer for every team. Use the table below as a quick reference when evaluating your options:</p>



<figure class="wp-block-table"><table><thead><tr><th>Tool</th><th>Primary Strength</th><th>Pricing Model</th><th>Best For</th></tr></thead><tbody><tr><td>Atlassian Bamboo</td><td>Atlassian ecosystem integration</td><td>Commercial</td><td>Jira/Bitbucket shops</td></tr><tr><td>GitLab CI/CD</td><td>All-in-one DevOps platform</td><td>Free &amp; paid tiers</td><td>Teams hosted on GitLab</td></tr><tr><td>Spinnaker</td><td>Multi-cloud CD at scale</td><td>Open source</td><td>Cloud-native / Kubernetes deployments</td></tr><tr><td>TeamCity</td><td>Developer experience &amp; IDE integration</td><td>Free &amp; commercial</td><td>JetBrains / Java-heavy teams</td></tr><tr><td>CloudBees CI</td><td>Enterprise Jenkins with support</td><td>Commercial</td><td>Large Jenkins-invested organizations</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">The right choice depends on your existing toolchain, team size, cloud strategy, and budget. Start by identifying the biggest pain points with your current Jenkins setup—plugin management, lack of support, cloud-native deployment complexity, or poor developer experience—and let that drive the evaluation.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/5-jenkins-alternatives-for-java-developers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Eclipse Che 7 Strengthens Link Between Java and Kubernetes</title>
		<link>https://www.bestdevops.com/eclipse-che-7-strengthens-link-between-java-and-kubernetes/</link>
					<comments>https://www.bestdevops.com/eclipse-che-7-strengthens-link-between-java-and-kubernetes/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Thu, 26 Sep 2019 07:32:59 +0000</pubDate>
				<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Developers Tools]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java developers]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=8087</guid>

					<description><![CDATA[Source:-adtmag.com Oracle wrapped up its annual OpenWorld and Code One events in San Francisco on Friday, ending a week filled [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Source:-adtmag.com</p>



<p class="wp-block-paragraph">Oracle wrapped up its annual OpenWorld and Code One events in San Francisco on Friday, ending a week filled with of Java- and Cloud-focused announcements from Big O and the 350+ vendors exhibiting at this literally traffic-stopping user conference.</p>



<p class="wp-block-paragraph">The big news for Java developers at this year&#8217;s show was the release of the Java Standard Edition 13 Platform (Java SE 13) and its open-source reference implementation, the Java Development Kit 13 (JDK 13). Another big Java-related announcement came from the Eclipse Foundation, which released the Eclipse Che 7 in-browser IDE at the show, making good on its promise to couple Java and Kubernetes more tightly</p>



<p class="wp-block-paragraph">The Foundation bills Che as the first developer workspace server and IDE for creating cloud-native enterprise applications on Kubernetes. It&#8217;s designed to simplify writing, building and collaborating on cloud-native apps for teams by abstracting away many of the complexities of Kubernetes and closing the gap between development and production environments.<br></p>



<p class="wp-block-paragraph">The result, said Mike Milinkovich, executive director of the Eclipse Foundation, is faster, safer development of Kubernetes applications.</p>



<p class="wp-block-paragraph">&#8220;Che is the first IDE built with the needs of Kubernetes developers in mind,&#8221; Milinkovich told&nbsp;<em>ADTmag</em>. &#8220;What&#8217;s exciting about Che 7 is that it has been architected to be natively Kubernetes-hosted, and there&#8217;s a ton of productivity benefits you get from that.&#8221;</p>



<p class="wp-block-paragraph">Che 7 aims to eliminate local-environment configurations and provide developers with &#8220;one-click workspaces,&#8221; Milinkovich said. It makes the developer and production environments the same on a scalable, collaborative, and secure platform specifically designed for building containerized apps.</p>



<p class="wp-block-paragraph">&#8220;Every technology has a lifespan,&#8221; he said, &#8220;including desktop IDEs, like Eclipse and IntelliJ, where made perfect sense when most developers were working on a single, cohesive platform. Back when I started at Eclipse 15 years ago, developers were building for Java within a sort of a constrained set of technologies that defined the application infrastructure they were targeting. But in today&#8217;s full-stack world, there are very few applications that don&#8217;t mix, say, Java and JavaScript, for example. There are different container technologies and orchestration models out there, there&#8217;s much more variety in the Java world in terms of frameworks, and it almost seems like there&#8217;s a new JavaScript framework every week. It has become impractical for developers to have to reconfigure their IDEs for each new framework as they move from project to project. I&#8217;ve seen studies suggesting that it takes up as much as 25% of developers&#8217; time.&#8221;</p>



<p class="wp-block-paragraph">Che 7 comes with a pre-packaged, web-based IDE based on an extended version of Eclipse Theia to provide &#8220;an in-browser Visual Studio Code experience,&#8221; the Foundation said in a statement, adding, &#8220;Eclipse Che and Eclipse Theia are already integral to cloud native solutions from vendors such as Google, IBM and Broadcom, among others. It comprises the core of Red Hat CodeReady Workspaces, for example, a new development environment for Red Hat OpenShift.&#8221;</p>



<p class="wp-block-paragraph">&#8220;With Che 7, everything a cloud native developer needs &#8212; including the IDE, its plugins, and their dependencies &#8212; is running as a Kubernetes application, so everything becomes repeatable and reproducible,&#8221; said Brad Micklea, vice president of Red Hat&#8217;s Developer Tools and Programs group, in a statement, &#8220;whereas before development teams had to spend a non-trivial amount of time building and maintaining developer environments. Now developers can more quickly spin up a development environment in Kubernetes that mirrors a production application, and Che will take care of adding the development, build and debugging tools needed for them. Anyone, anytime, can contribute to a project without installing software, thus enabling faster application development from a more secure, centrally hosted environment.&#8221;</p>



<p class="wp-block-paragraph">Che is the culmination of more than six years of community contributions, Milinkovich said, including more than 20 vendors.<br>John has been covering the high-tech beat from Silicon Valley and the San Francisco Bay Area for nearly two decades. He serves as Editor-at-Large for Application Development Trends (www.ADTMag.com) and contributes regularly to Redmond Magazine, The Technology Horizons in Education Journal, and Campus Technology. He is the author of more than a dozen books, including The Everything Guide to Social Media; The Everything Computer Book; Blobitecture: Waveform Architecture and Digital Design; John Chambers and the Cisco Way; and Diablo: The Official Strategy Guide.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/eclipse-che-7-strengthens-link-between-java-and-kubernetes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Apache Log4j 2.12.0: What&#8217;s New in the Java Logging Framework (Including Docker Lookup Support)</title>
		<link>https://www.bestdevops.com/apache-log4j-2-12-0-update-for-java-logging-framework-adds-new-docker-lookup/</link>
					<comments>https://www.bestdevops.com/apache-log4j-2-12-0-update-for-java-logging-framework-adds-new-docker-lookup/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Tue, 02 Jul 2019 05:25:38 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Cloud Configuration]]></category>
		<category><![CDATA[Java developers]]></category>
		<category><![CDATA[Update]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=5807</guid>

					<description><![CDATA[Apache Log4j 2.12.0 ships new features including Docker and HTTP(S) reconfiguration support, zero-padded rolling file counters, and GZIP compression levels, alongside more than a dozen bug fixes. Here is a full breakdown of the release.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><em>Originally reported by JAXenter. Release announced June 30, 2019 by the Apache Logging team.</em></p>



<h2 class="wp-block-heading">Background: From Log4j to Log4j 2</h2>



<p class="wp-block-paragraph">Log4j has been a foundational logging library in the Java ecosystem for many years. In 2014, the project underwent a major architectural overhaul and relaunched as Log4j 2. The rewrite delivered significant improvements over the 1.x line, including:</p>



<ul class="wp-block-list">
  <li>Substantially faster throughput via the LMAX Disruptor library for asynchronous logging</li>
  <li>A cleaner, more flexible configuration syntax (XML, JSON, YAML, and Properties formats)</li>
  <li>Fixes to architectural problems present in Log4j 1.x</li>
  <li>A plugin-based architecture enabling easy extensibility</li>
</ul>



<p class="wp-block-paragraph">Log4j 2 is <strong>not backward-compatible with Log4j 1.x</strong>. The Apache team provides a bridge adapter for legacy applications, but a clean migration to the 2.x API is recommended for new projects.</p>



<p class="wp-block-paragraph">The latest milestone in the Log4j 2 journey is <strong>version 2.12.0</strong>, which adds several useful features and resolves a significant number of bugs.</p>



<h2 class="wp-block-heading">New Features in Log4j 2.12.0</h2>



<h3 class="wp-block-heading">Docker Lookup and HTTP(S) Reconfiguration (LOG4J2-913)</h3>



<p class="wp-block-paragraph">The headline addition in 2.12.0 is support for <strong>reconfiguration via HTTP(S), Docker, and Spring Cloud Configuration</strong>. This means Log4j can now look up configuration values dynamically from these sources at runtime — a significant quality-of-life improvement for teams running containerised Java services. In Docker environments, the new Docker Lookup allows log configuration to reference Docker metadata (such as container labels or environment variables) directly in log patterns and routing rules.</p>



<h3 class="wp-block-heading">Zero-Padded Rolling File Counter (LOG4J2-2403)</h3>



<p class="wp-block-paragraph">The <code>RollingFileAppender</code> now supports zero-padded counters in file name patterns. This ensures rolled log files sort correctly in file system listings — for example, <code>app.log.001</code> instead of <code>app.log.1</code>. Contributed by community member <em>hupfdule</em>.</p>



<h3 class="wp-block-heading">Marker-Absence Filter (LOG4J2-2427)</h3>



<p class="wp-block-paragraph">A new filter can be configured to match log events that carry <strong>no marker</strong>. This complements the existing <code>MarkerFilter</code>, enabling finer-grained routing of unmarked events to specific appenders. Contributed by <em>Rimaljit Kaur</em>.</p>



<h3 class="wp-block-heading">Programmatic Reconfiguration API (LOG4J2-2406)</h3>



<p class="wp-block-paragraph">New reconfiguration methods have been added to the <code>Configurator</code> class, making it easier to programmatically reload or update the Log4j configuration at runtime without restarting the JVM.</p>



<h3 class="wp-block-heading">TCP Appender Multi-Address Support (LOG4J2-2586)</h3>



<p class="wp-block-paragraph">The <code>TCP Appender</code> now correctly handles host names that resolve to multiple IP addresses (round-robin DNS or multi-homed hosts), improving resilience when shipping logs to a log aggregation cluster.</p>



<h3 class="wp-block-heading">Custom End-of-Line in JsonLayout (LOG4J2-2337)</h3>



<p class="wp-block-paragraph"><code>JsonLayout</code> now accepts a configurable end-of-line character sequence, giving operators control over how JSON log lines are delimited — useful when downstream log shippers expect specific line endings. Contributed by <em>Arvind Sahare</em> and <em>Patrice Ferrot</em>.</p>



<h3 class="wp-block-heading">Configurable GZIP Compression Level on Rollover (LOG4J2-2598)</h3>



<p class="wp-block-paragraph">GZIP compression applied during log file rollover now supports configurable compression levels (1–9), allowing teams to tune the trade-off between CPU usage and compressed file size. Contributed by <em>Carter Kozak</em>.</p>



<h3 class="wp-block-heading">Case-Insensitive AsyncQueueFullPolicy Values (LOG4J2-2611)</h3>



<p class="wp-block-paragraph">The <code>AsyncQueueFullPolicy</code> configuration now accepts the shorthand values <code>Default</code> and <code>Discard</code> in a case-insensitive manner, reducing the potential for silent misconfiguration caused by capitalisation differences.</p>



<h3 class="wp-block-heading">MapMessage Helper Method (LOG4J2-2634)</h3>



<p class="wp-block-paragraph">A new <code>org.apache.logging.log4j.message.MapMessage.toKey(String)</code> method simplifies the creation of subclasses, a common pattern when structured logging is used with custom message types.</p>



<h2 class="wp-block-heading">Bug Fixes and Resolved Issues</h2>



<p class="wp-block-paragraph">Log4j 2.12.0 resolves a substantial list of defects. The most operationally significant are highlighted below.</p>



<h3 class="wp-block-heading">Stability and Crash Fixes</h3>



<ul class="wp-block-list">
  <li><strong>LOG4J2-2592</strong> — Fixed a <code>StackOverflowException</code> in <code>SocketAppender</code> when the remote server was unreachable. This was a significant reliability issue for applications shipping logs over TCP.</li>
  <li><strong>LOG4J2-2598</strong> — Fixed a <code>StackOverflowError</code> in <code>AbstractExternalFileCleaner</code>.</li>
  <li><strong>LOG4J2-2618</strong> — Fixed a possible <code>ClassCastException</code> in <code>ScriptManager</code> during initialisation.</li>
  <li><strong>LOG4J2-2616</strong> — Restored a constructor in <code>ThrowablePatternConverter</code> that was inadvertently removed in version 2.8.2, restoring binary compatibility for downstream libraries.</li>
</ul>



<h3 class="wp-block-heading">NullPointerException Fixes</h3>



<ul class="wp-block-list">
  <li><strong>LOG4J2-2559</strong> — NPE in <code>JdbcAppender.createAppender()</code>.</li>
  <li><strong>LOG4J2-2612</strong> — NPE in <code>JdbcDatabaseManager.writeInternal()</code>.</li>
</ul>



<h3 class="wp-block-heading">Async Logging Performance Fix (LOG4J2-2606)</h3>



<p class="wp-block-paragraph">A critical fix for asynchronous logging: when the async queue was full, Log4j would previously enter a busy-wait loop, causing very high CPU utilisation and dramatically reduced throughput. This has been corrected so that a full queue is handled gracefully without spinning.</p>



<h3 class="wp-block-heading">RoutingAppender Race Condition (LOG4J2-2629)</h3>



<p class="wp-block-paragraph">A race condition in <code>RoutingAppender</code> could allow log events to be silently dropped when a purge policy attempted to remove an idle appender at exactly the same moment a new event arrived for that appender. This has been fixed.</p>



<h3 class="wp-block-heading">Additional Notable Fixes</h3>



<ul class="wp-block-list">
  <li><strong>LOG4J2-2622</strong> — <code>StructuredDataId</code> was ignoring the <code>maxLength</code> attribute.</li>
  <li><strong>LOG4J2-2636</strong> — <code>RFC5424Layout</code> was not correctly setting the default Structured Element ID for the MDC.</li>
  <li><strong>LOG4J2-1143</strong> — Lookups were silently ignored when the plugin key was not all-lowercase. Contributed by <em>Pascal Heinrich</em>.</li>
  <li><strong>LOG4J2-1852</strong> — Plugin discovery inside a JAR over a URL connection now works correctly. Contributed by <em>Tanner Altares</em>.</li>
  <li><strong>LOG4J2-2561</strong> — Fixed JEP 223 version detection for JDK 9 and later. Contributed by <em>Ulrich Enslin</em>.</li>
  <li><strong>LOG4J2-1103</strong> — <code>FailoverAppender</code> was failing with a configuration parsing error when the <code>&lt;Failovers&gt;</code> element was present. Contributed by <em>Seán Dunne</em>.</li>
  <li><strong>LOG4J2-2597</strong> — A clearer exception message is now thrown when both <code>log4j-slf4j-impl</code> and <code>log4j-to-slf4j</code> are on the classpath simultaneously (a common misconfiguration).</li>
  <li><strong>LOG4J2-2631</strong> — <code>RoutingAppender</code> purge policies no longer incorrectly stop appenders that are defined in the logger configuration but only referenced (not owned) by the <code>RoutingAppender</code>.</li>
  <li><strong>LOG4J2-2564</strong> — <code>MapPatternConverter</code> is now correctly created from the <code>%K</code>, <code>%map</code>, and <code>%MAP</code> patterns.</li>
  <li><strong>LOG4J2-2602</strong> — File modification time is now updated correctly when a size-based triggering policy is used without a time-based policy.</li>
  <li><strong>LOG4J2-2610</strong> — File creation time is now explicitly set on newly created log files.</li>
  <li><strong>LOG4J2-2547</strong> — An error message in <code>RollingRandomAccessFileAppender</code> was referencing the wrong class name.</li>
</ul>



<h2 class="wp-block-heading">Upgrade Notes and Requirements</h2>



<p class="wp-block-paragraph">Before upgrading to Log4j 2.12.0, keep the following in mind:</p>



<ul class="wp-block-list">
  <li><strong>Java 7 or higher</strong> is required to build and run Log4j 2.12.0.</li>
  <li>Log4j 2.x is <strong>not compatible with Log4j 1.x</strong>. Do not mix the two on the classpath.</li>
  <li>Do not place both <code>log4j-slf4j-impl</code> (routes SLF4J calls into Log4j 2) and <code>log4j-to-slf4j</code> (routes Log4j 2 calls into SLF4J) on the classpath at the same time. This creates a logging loop and will now throw a more descriptive exception.</li>
  <li>If you use <code>RoutingAppender</code>, review the behaviour change in LOG4J2-2631: <code>RoutingAppender.getAppenders()</code> no longer includes entries for appenders that the router references but did not create.</li>
</ul>



<p class="wp-block-paragraph">The full changelog and release artifacts are available on the <a href="https://logging.apache.org/log4j/2.x/">official Apache Log4j website</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/apache-log4j-2-12-0-update-for-java-logging-framework-adds-new-docker-lookup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
