# Maven

Apache Maven is a build tool for Java projects that uses a project object model to manage compilation, testing, and documentation.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## IntelliJ IDEA 2026.2.3 Is Out!

DevFeed: [IntelliJ IDEA 2026.2.3 Is Out!](<https://devfeed.tech/articles/intellij-idea-2026-2-3-is-out-30918.md>)

Original publisher: [Read original article](<https://blog.jetbrains.com/idea/2026/09/intellij-idea-2026-2-3/>)

Author: Maria Kosukhina

Published: 2026-09-16T10:53:53Z

Content type: release

Language: en

Sources: [The JetBrains Blog](<https://devfeed.tech/sources/the-jetbrains-blog.md>)

Topics: [IntelliJ IDEA](<https://devfeed.tech/topics/intellij-idea.md>), [2026.2](<https://devfeed.tech/topics/2026-2.md>), [Release notes](<https://devfeed.tech/topics/release-notes.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [plantuml](<https://devfeed.tech/topics/plantuml.md>), [WSL2](<https://devfeed.tech/topics/wsl2.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>)

Tags: [2026-2](<https://devfeed.tech/tags/2026-2.md>), [intellij-idea](<https://devfeed.tech/tags/intellij-idea.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [maven](<https://devfeed.tech/tags/maven.md>), [plantuml](<https://devfeed.tech/tags/plantuml.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>), [wsl2](<https://devfeed.tech/tags/wsl2.md>)

### AI overview

JetBrains released IntelliJ IDEA 2026.2.3 with fixes and improvements affecting Maven project data, IDE freezes, Markdown preview scrolling, PlantUML support, and applications using WSL2 mirrored networking.

### Source excerpt

We've just released IntelliJ IDEA 2026.2.3. You can update to this version from inside the IDE, using the Toolbox App, or using snaps if you are a Ubuntu user. You can also download it from our website. The latest update brings the following improvements: For a comprehensive overview of the fixes, see the release notes. [...]

## App Intents: One Java Declaration for Siri, Spotlight, and Shortcuts

DevFeed: [App Intents: One Java Declaration for Siri, Spotlight, and Shortcuts](<https://devfeed.tech/articles/app-intents-one-java-declaration-for-siri-spotlight-and-shortcuts-19197.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/app-intents-siri-spotlight-shortcuts/>)

Author: Shai Almog

Published: 2026-08-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [App](<https://devfeed.tech/topics/app.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Maven](<https://devfeed.tech/topics/maven.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [build](<https://devfeed.tech/tags/build.md>), [bytecode](<https://devfeed.tech/tags/bytecode.md>), [ios](<https://devfeed.tech/tags/ios.md>), [java](<https://devfeed.tech/tags/java.md>), [maven-plugin](<https://devfeed.tech/tags/maven-plugin.md>), [native](<https://devfeed.tech/tags/native.md>), [shortcuts](<https://devfeed.tech/tags/shortcuts.md>), [spotlight](<https://devfeed.tech/tags/spotlight.md>)

### AI overview

Codename One App Intents use Java annotations to generate reflection-free handlers for Siri, Spotlight, Shortcuts, Android launcher shortcuts, and internal application commands. The article explains build-time validation, entity parameters, routing, and concurrent handler execution.

### Source excerpt

Codename One App Intents generate reflection-free handlers for Siri, Spotlight, Shortcuts, Android launcher shortcuts, and an application command layer from Java annotations.

## The Third-Generation GUI Builder: One Workspace for Every Form

DevFeed: [The Third-Generation GUI Builder: One Workspace for Every Form](<https://devfeed.tech/articles/the-third-generation-gui-builder-one-workspace-for-every-form-19555.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/third-generation-gui-builder/>)

Author: Shai Almog

Published: 2026-08-14T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [GUI](<https://devfeed.tech/topics/gui.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [CSS](<https://devfeed.tech/topics/css.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [css](<https://devfeed.tech/tags/css.md>), [gui](<https://devfeed.tech/tags/gui.md>), [java](<https://devfeed.tech/tags/java.md>), [projects](<https://devfeed.tech/tags/projects.md>), [rewrite](<https://devfeed.tech/tags/rewrite.md>)

### AI overview

Codename One has rebuilt its GUI Builder for a third generation. The new project-oriented workspace preserves guided layout while integrating Maven project structure, forms, live CSS, protected Java regions, and switching between forms.

### Source excerpt

Codename One's third-generation GUI Builder keeps the guided layout work from the previous editor and rebuilds the workflow around Maven projects, live CSS, protected Java regions, and fast switching between forms.

## Why Codename One Is Moving Beyond Maven Central

DevFeed: [Why Codename One Is Moving Beyond Maven Central](<https://devfeed.tech/articles/why-codename-one-is-moving-beyond-maven-central-19361.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/maven-central-cloudflare-r2/>)

Author: Shai Almog

Published: 2026-08-04T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Maven Central](<https://devfeed.tech/topics/maven-central.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Cloudflare](<https://devfeed.tech/topics/cloudflare.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [hosting](<https://devfeed.tech/topics/hosting.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [cloudflare](<https://devfeed.tech/tags/cloudflare.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [migration](<https://devfeed.tech/tags/migration.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [releases](<https://devfeed.tech/tags/releases.md>)

### AI overview

Codename One is moving from Maven Central to a repository operated on Cloudflare R2. The staged migration includes a smaller release payload, dual publishing during the transition, and a planned cutover; the August 28, 2026 update says new releases now go only to the Codename One repository.

### Source excerpt

Codename One is starting a staged move from Maven Central to a free Cloudflare R2 repository, with dual publishing, a smaller release payload, and an explicit cutover plan.

## How to Automate Artifact Cleanup in Harness Artifact Registry Without Breaking Production

DevFeed: [How to Automate Artifact Cleanup in Harness Artifact Registry Without Breaking Production](<https://devfeed.tech/articles/automate-artifact-cleanup-in-harness-registry-13416.md>)

Original publisher: [Read original article](<https://www.harness.io/blog/how-to-automate-artifact-cleanup-in-harness-artifact-registry-without-breaking-production>)

Author: Shibam Dhar

Published: 2026-08-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Harness Blog](<https://devfeed.tech/sources/harness-blog.md>)

Topics: [container images](<https://devfeed.tech/topics/container-images.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [npm](<https://devfeed.tech/topics/npm.md>), [Helm charts](<https://devfeed.tech/topics/helm-charts.md>), [Python](<https://devfeed.tech/topics/python.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [sdlc](<https://devfeed.tech/topics/sdlc.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>)

Tags: [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [container-images](<https://devfeed.tech/tags/container-images.md>), [cost](<https://devfeed.tech/tags/cost.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [docker](<https://devfeed.tech/tags/docker.md>), [helm](<https://devfeed.tech/tags/helm.md>), [npm](<https://devfeed.tech/tags/npm.md>), [python](<https://devfeed.tech/tags/python.md>), [sdlc](<https://devfeed.tech/tags/sdlc.md>)

### AI overview

This hands-on walkthrough explains how Harness Artifact Registry lifecycle rules can automate cleanup across Docker, npm, Maven, Python, and Helm repositories while reducing the risk of deleting artifacts still used in production. It describes dry-run previews, governance tiers, recovery, and the limits of age-, count-, and tag-based rules.

### Source excerpt

A hands-on walkthrough of Lifecycle Rules across Docker, npm, Maven, Python, and Helm. Includes dry-run preview, three-tier governance, and one-click recovery. | Blog

## AppFunctions, revisited

DevFeed: [AppFunctions, revisited](<https://devfeed.tech/articles/appfunctions-revisited-26158.md>)

Original publisher: [Read original article](<https://dev.to/tkuenneth/appfunctions-revisited-4n90>)

Author: Thomas Künneth

Published: 2026-07-25T11:36:27Z

Content type: tutorial

Language: en

Sources: [Thomas Künneth](<https://devfeed.tech/sources/thomas-kunneth.md>)

Topics: [Jetpack](<https://devfeed.tech/topics/jetpack.md>), [Android](<https://devfeed.tech/topics/android.md>), [Library](<https://devfeed.tech/topics/library.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Maven](<https://devfeed.tech/topics/maven.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [android](<https://devfeed.tech/tags/android.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [community](<https://devfeed.tech/tags/community.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [inclusive](<https://devfeed.tech/tags/inclusive.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [library](<https://devfeed.tech/tags/library.md>), [maven](<https://devfeed.tech/tags/maven.md>), [programming](<https://devfeed.tech/tags/programming.md>), [software](<https://devfeed.tech/tags/software.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

This tutorial revisits Android Jetpack AppFunctions after alpha10 stopped publishing appfunctions-service. It explains the new service entry-point model, generated subclasses and XML, manual service declaration, the removal of AppFunctionContext, and a correction about using installed-app display names instead of package names.

### Source excerpt

In Agentic interaction using AppFunctions I showed how Be nice publishes createAppPair for agents, using Jetpack appfunctions 1.0.0-alpha08. That setup leaned on a library-merged PlatformAppFunctionService, an AppFunctionContext parameter, and aggregate XML named app_functions.xml / app_functions_v2.xml. When I bumped toward what Android Studio was suggesting as of mid July, Sync failed: Could not find androidx.appfunctions:appfunctions-service:1.0.0-alpha10. On 1 July 2026, alpha10 stopped publishing appfunctions-service (Maven still lists it through alpha09). The Add the AppFunctions API guide now expects you to host an @AppFunctionServiceEntryPoint AppFunctionService. Spoiler: that is the real change. The rest of this post is how that landed in Be nice, plus an important update to the earlier article that is easy to miss if you only chase compile errors. Correction first In the earlier post I wrote that agents would pass package names for app1 and app2. That was wrong for Be nice. The implementation matches display names, case-insensitively, against installed apps. Package names are a convenient engineer habit; they are a poor agent habit when the user said "Clock" and "Contacts". KDoc and app-level metadata have to say what the code accepts -- agents lean on that text harder than on your mental model of the APK. What changed in the model Before alpha10 you annotated a helper class and let the service AAR merge a stock entry point into the manifest. Starting with alpha10: @AppFunction lives in androidx.appfunctions (not androidx.appfunctions.service) It is only legal on methods of an abstract AppFunctionService marked @AppFunctionServiceEntryPoint KSP generates the concrete subclass named in serviceName and the XML named in appFunctionXmlFileName You declare that generated service yourself; nothing merges a stock one anymore There is no AppFunctionContext parameter; the service is a Context Drop appfunctions:aggregateAppFunctions. Grepping for empty app_functions.

## Versioned Builds Are Back, With Master Builds For Fast Verification

DevFeed: [Versioned Builds Are Back, With Master Builds For Fast Verification](<https://devfeed.tech/articles/versioned-builds-are-back-with-master-builds-for-fast-verification-19660.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/versioned-builds-master/>)

Author: Shai Almog

Published: 2026-07-07T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [releases](<https://devfeed.tech/topics/releases.md>), [Development](<https://devfeed.tech/topics/development.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Maven Central](<https://devfeed.tech/topics/maven-central.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [enterprise](<https://devfeed.tech/tags/enterprise.md>), [master](<https://devfeed.tech/tags/master.md>), [production](<https://devfeed.tech/tags/production.md>), [speed](<https://devfeed.tech/tags/speed.md>), [verification](<https://devfeed.tech/tags/verification.md>), [versioning](<https://devfeed.tech/tags/versioning.md>)

### AI overview

Codename One reintroduces versioned cloud builds, allowing developers to pin builds to a specific published release or build against the current development head. The article explains use cases including production stabilization, regression diagnosis, and reproducing older customer environments, while noting that master builds are intended for verification rather than production shipping and that older versions are limited by account level because of support costs.

### Source excerpt

Versioned builds return with a Maven-era model: pin a cloud build to a release, or build against master to verify the current development head.

## The Codename One Game Builder: Draw The Level, Code The Rules

DevFeed: [The Codename One Game Builder: Draw The Level, Code The Rules](<https://devfeed.tech/articles/the-codename-one-game-builder-draw-the-level-code-the-rules-19554.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/the-codename-one-game-builder/>)

Author: Shai Almog

Published: 2026-06-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [3D](<https://devfeed.tech/topics/3d.md>), [API](<https://devfeed.tech/topics/api.md>), [Java](<https://devfeed.tech/topics/java.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Maven](<https://devfeed.tech/topics/maven.md>)

Tags: [3d](<https://devfeed.tech/tags/3d.md>), [api](<https://devfeed.tech/tags/api.md>), [code](<https://devfeed.tech/tags/code.md>), [data](<https://devfeed.tech/tags/data.md>), [gaming](<https://devfeed.tech/tags/gaming.md>), [java](<https://devfeed.tech/tags/java.md>), [json](<https://devfeed.tech/tags/json.md>), [project](<https://devfeed.tech/tags/project.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This orientation introduces the Codename One Game Builder, a visual level editor that saves plain-data .game files for runtime loading. It covers the editor's panels, Java 17 and Maven requirements, and its support for 2D, board, and 3D game modes.

### Source excerpt

A visual level editor for the Codename One gaming API that saves a plain-data .game file the runtime plays, across 2D, isometric board, and 3D modes, plus a streaming engine for large open worlds.

## A2A in Java: hands on Embabel

DevFeed: [A2A in Java: hands on Embabel](<https://devfeed.tech/articles/a2a-in-java-hands-on-embabel-22587.md>)

Original publisher: [Read original article](<https://medium.com/amex-gbt-technology/a2a-in-java-hands-on-embabel-b18d514be424?source=rss----60a0578f4096---4>)

Author: Aneshka Goyal

Published: 2026-06-21T07:01:03Z

Content type: tutorial

Language: en

Sources: [Amex GBT Technology](<https://devfeed.tech/sources/amex-gbt-technology.md>)

Topics: [Embabel](<https://devfeed.tech/topics/embabel.md>), [A2A protocol](<https://devfeed.tech/topics/a2a-protocol.md>), [Java](<https://devfeed.tech/topics/java.md>), [MCP](<https://devfeed.tech/topics/mcp.md>), [Spring AI](<https://devfeed.tech/topics/spring-ai.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [bedrock](<https://devfeed.tech/topics/bedrock.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>)

Tags: [a2a](<https://devfeed.tech/tags/a2a.md>), [agent](<https://devfeed.tech/tags/agent.md>), [ai](<https://devfeed.tech/tags/ai.md>), [embabel](<https://devfeed.tech/tags/embabel.md>), [java](<https://devfeed.tech/tags/java.md>), [maven](<https://devfeed.tech/tags/maven.md>), [mcp-server](<https://devfeed.tech/tags/mcp-server.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [spring-ai](<https://devfeed.tech/tags/spring-ai.md>)

### AI overview

A hands-on tutorial for building a Java agent with Embabel. It demonstrates LLM-based story generation and review, Amazon Bedrock integration, a local Spring AI MCP server for word counts, Maven dependency management, and A2A-compliant endpoints.

### Source excerpt

Part 2: Hands on with Embabel! In Part 1, we discussed how Embabel works internally. In Part 2, we'll now try to get an application started that has an LLM interaction, talks to local MCP server (for tools), and helps us achieve a goal. This time, we'll also make sure we use A2A protocol for our agent (something Embabel makes easier to do allowing us to focus on core business logic and offloading boilerplate code to Embabel). We'll use the project creator to create a skeleton project for us with some Embabel dependencies and code. uvx --from git+https://github.com/embabel/project-creator.git project-creator Please note we can use Java or Kotlin as our preferred language, I would be leveraging Java. This is a simple story teller agent who writes a story and gets it reviewed (both story generation and review comes from LLM). We'd be using Bedrock for connection to our LLM model. For fetching the word count for a topic, it uses an MCP server which is a Spring AI MCP server running locally. Dependency management is handled using Maven, and the POM file looks like this: <?xml version="1.0" encoding="UTF-8"?> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.5.9</version> <relativePath/> <!-- Lookup parent from repository --> </parent> <groupId>com.example.demo-city-agent</groupId> <artifactId>Demo-city-agent</artifactId> <version>0.1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>My first agent</name> <description>Generated agent project</description> <properties> <java.version>21</java.version> <embabel-agent.version>0.3.1</embabel-agent.version> </properties> <dependencies> <!-- Main Dependencies --> <dependency> <groupId>com.embabel.agent</groupId> <artifactId

## Protestware by open source maintainer to hinder agentic coding: The jqwik 1.10.0 Prompt Injection

DevFeed: [Protestware by open source maintainer to hinder agentic coding: The jqwik 1.10.0 Prompt Injection](<https://devfeed.tech/articles/protestware-by-open-source-maintainer-to-hinder-agentic-coding-the-jqwik-1-10-0-prompt-injection-8057.md>)

Original publisher: [Read original article](<https://snyk.io/blog/protestware-open-source-maintainer-qwik-1-10-0-prompt-injection/>)

Author: Brian Vermeer

Published: 2026-06-02T00:00:00Z

Content type: article

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [prompt injection](<https://devfeed.tech/topics/prompt-injection.md>), [agentic-coding](<https://devfeed.tech/topics/agentic-coding.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [payload](<https://devfeed.tech/topics/payload.md>), [Claude Code](<https://devfeed.tech/topics/claude-code.md>), [cursor](<https://devfeed.tech/topics/cursor.md>), [GitHub Copilot](<https://devfeed.tech/topics/github-copilot.md>)

Tags: [agentic-coding](<https://devfeed.tech/tags/agentic-coding.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [article](<https://devfeed.tech/tags/article.md>), [awareness](<https://devfeed.tech/tags/awareness.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [claude-code](<https://devfeed.tech/tags/claude-code.md>), [code](<https://devfeed.tech/tags/code.md>), [copilot](<https://devfeed.tech/tags/copilot.md>), [cursor](<https://devfeed.tech/tags/cursor.md>), [developer](<https://devfeed.tech/tags/developer.md>), [devops](<https://devfeed.tech/tags/devops.md>), [github](<https://devfeed.tech/tags/github.md>), [interest](<https://devfeed.tech/tags/interest.md>), [java](<https://devfeed.tech/tags/java.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [open-source-security](<https://devfeed.tech/tags/open-source-security.md>), [payload](<https://devfeed.tech/tags/payload.md>), [prompt-injection](<https://devfeed.tech/tags/prompt-injection.md>), [sandbox](<https://devfeed.tech/tags/sandbox.md>), [scm](<https://devfeed.tech/tags/scm.md>), [security](<https://devfeed.tech/tags/security.md>), [security-labs](<https://devfeed.tech/tags/security-labs.md>), [snyk-code](<https://devfeed.tech/tags/snyk-code.md>), [snyk-open-source](<https://devfeed.tech/tags/snyk-open-source.md>), [snyk-security-intel](<https://devfeed.tech/tags/snyk-security-intel.md>), [supply-chain](<https://devfeed.tech/tags/supply-chain.md>), [supply-chain-security](<https://devfeed.tech/tags/supply-chain-security.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tools](<https://devfeed.tech/tags/tools.md>), [vulnerability-insights](<https://devfeed.tech/tags/vulnerability-insights.md>)

### AI overview

The article examines jqwik 1.10.0, whose maintainer embedded a prompt injection in test output aimed at AI coding agents. ANSI terminal escape codes concealed the instruction from humans while leaving it visible to tools processing raw logs, creating a supply-chain risk for CI/CD pipelines and agentic coding workflows.

### Source excerpt

jqwik 1.10.0 added a hidden prompt injection aimed at AI coding agents, using terminal escape codes to conceal destructive instructions from humans while leaving them readable to logs and tools.

## What is an Agentic Application?

DevFeed: [What is an Agentic Application?](<https://devfeed.tech/articles/what-is-an-agentic-application-22596.md>)

Original publisher: [Read original article](<https://medium.com/amex-gbt-technology/what-is-an-agentic-application-8f4f382fedc2?source=rss----60a0578f4096---4>)

Author: Aneshka Goyal

Published: 2026-05-06T04:01:01Z

Content type: tutorial

Language: en

Sources: [Amex GBT Technology](<https://devfeed.tech/sources/amex-gbt-technology.md>)

Topics: [Spring AI](<https://devfeed.tech/topics/spring-ai.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [Amazon Bedrock](<https://devfeed.tech/topics/amazon-bedrock.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Java](<https://devfeed.tech/topics/java.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>)

Tags: [agentic](<https://devfeed.tech/tags/agentic.md>), [agentic-ai](<https://devfeed.tech/tags/agentic-ai.md>), [ai](<https://devfeed.tech/tags/ai.md>), [aws](<https://devfeed.tech/tags/aws.md>), [developer](<https://devfeed.tech/tags/developer.md>), [java](<https://devfeed.tech/tags/java.md>), [llm](<https://devfeed.tech/tags/llm.md>), [maven](<https://devfeed.tech/tags/maven.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [mcp-server](<https://devfeed.tech/tags/mcp-server.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [spring-ai](<https://devfeed.tech/tags/spring-ai.md>), [streaming](<https://devfeed.tech/tags/streaming.md>)

### AI overview

A hands-on tutorial for building an agentic application with Spring AI. It demonstrates connecting an application to AWS Bedrock, exposing weather and latitude-longitude tools through a stateless MCP server over HTTP streaming, and combining MCP clients, memory, tools, and a system prompt.

### Source excerpt

Part 2: Using spring AI to build a simple agentic application In Part 1 we discussed about core capabilities of Spring AI that helps it position itself as a strong framework to build Agentic applications. Taking things forward from there, let's now build something to bring things into action!! Scenario We want to build an application that connects with AWS bedrock for LLM integration. Has set of tools exposed from an MCP server running on HTTP streaming protocol in STATELESS mode(MCP is also built using Spring AI). For memory we use chat memory with inbuilt InMemory repository and MessageWindowChatMemory. This application has the ability to provide weather info, some lat long info for a particular city. MCP Server Setup Maven pom for dependency management <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.5.6</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>mcp-server-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>mcp-server-demo</name> <description>Demo project for Spring Boot</description> <url/> <licenses> <license/> </licenses> <developers> <developer/> </developers> <scm> <connection/> <developerConnection/> <tag/> <url/> </scm> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin

## Stream APIs, Swift Package Manager, Tutorial Trail Refresh, and the UWP Transition

DevFeed: [Stream APIs, Swift Package Manager, Tutorial Trail Refresh, and the UWP Transition](<https://devfeed.tech/articles/stream-apis-swift-package-manager-tutorial-trail-refresh-and-the-uwp-transition-19534.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/stream-apis-spm-tutorial-trail-and-uwp/>)

Author: Shai Almog

Published: 2026-03-20T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Universal Windows Platform](<https://devfeed.tech/topics/uwp.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>)

Tags: [dependencies](<https://devfeed.tech/tags/dependencies.md>), [ios](<https://devfeed.tech/tags/ios.md>), [java](<https://devfeed.tech/tags/java.md>), [maven-plugin](<https://devfeed.tech/tags/maven-plugin.md>), [swift-package](<https://devfeed.tech/tags/swift-package.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

Codename One adds built-in support for Java Stream APIs and Swift Package Manager integration for iOS dependencies, refreshes its written tutorial trail, and removes the UWP target from the Maven plugin in version 7.0.229.

### Source excerpt

Codename One now includes built-in java.util.stream support, adds Swift Package Manager support for iOS dependencies, refreshes the written tutorial trail, and removes the UWP target from the Maven plugin in 7.0.229.

## \[Math\] Intervals: Apache Maven version numbers

DevFeed: [\[Math\] Intervals: Apache Maven version numbers](<https://devfeed.tech/articles/math-intervals-apache-maven-version-numbers-20566.md>)

Original publisher: [Read original article](<https://yurichev.com/blog/intervals_maven/>)

Published: 2025-12-18T23:00:00Z

Content type: article

Language: en

Sources: [Dennis Yurichev](<https://devfeed.tech/sources/dennis-yurichev.md>)

Topics: [Maven](<https://devfeed.tech/topics/maven.md>), [math](<https://devfeed.tech/topics/math.md>)

Tags: [apache](<https://devfeed.tech/tags/apache.md>), [math](<https://devfeed.tech/tags/math.md>), [numbers](<https://devfeed.tech/tags/numbers.md>)

### AI overview

This article explains how Apache Maven version ranges use mathematical interval notation, including fixed versions, half-open intervals, half-closed intervals, and omitted infinity signs.

### Source excerpt

[Math] Intervals: Apache Maven version numbers

## Strengthening your Software Supply Chain

DevFeed: [Strengthening your Software Supply Chain](<https://devfeed.tech/articles/strengthening-your-software-supply-chain-23031.md>)

Original publisher: [Read original article](<https://www.javaadvent.com/2025/12/strengthening-your-software-supply-chain.html>)

Author: Andres Almiray

Published: 2025-12-12T03:03:02Z

Content type: article

Language: en

Sources: [Java Advent Calendar](<https://devfeed.tech/sources/java-advent-calendar.md>)

Topics: [supply-chain-security](<https://devfeed.tech/topics/supply-chain-security.md>), [reproducible builds](<https://devfeed.tech/topics/reproducible-builds.md>), [Java](<https://devfeed.tech/topics/java.md>), [Software](<https://devfeed.tech/topics/software.md>), [Maven](<https://devfeed.tech/topics/maven.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [build-tools](<https://devfeed.tech/tags/build-tools.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [devops](<https://devfeed.tech/tags/devops.md>), [integrity](<https://devfeed.tech/tags/integrity.md>), [java](<https://devfeed.tech/tags/java.md>), [reproducible-builds](<https://devfeed.tech/tags/reproducible-builds.md>), [security](<https://devfeed.tech/tags/security.md>), [software-supply-chain](<https://devfeed.tech/tags/software-supply-chain.md>), [supply-chain](<https://devfeed.tech/tags/supply-chain.md>)

### AI overview

This article explains how to strengthen the Java software supply chain beyond relying on build tools alone. It discusses SLSA security controls, attacks such as Log4Shell and the XZ backdoor, reproducible artifacts, and support from JReleaser for applying these practices.

### Source excerpt

According to Wikipedia, a software supply chain is the components, libraries, tools, and processes used to develop, build, and publish a software artifact. The Java space provides thousands upon thousands of libraries that may be consumed as dependencies for building projects. Many of these libraries rely on Apache Maven as their build tool of choice, [...] The post Strengthening your Software Supply Chain appeared first on JVM Advent.

## Java Dependency and Classpath Problems in Gradle and Maven Builds

DevFeed: [Java Dependency and Classpath Problems in Gradle and Maven Builds](<https://devfeed.tech/articles/is-the-java-ecosystem-cursed-a-dependency-analysis-perspective-30463.md>)

Original publisher: [Read original article](<https://dev.to/autonomousapps/is-the-java-ecosystem-cursed-a-dependency-analysis-perspective-53ef>)

Author: Tony Robalik

Published: 2025-11-24T20:15:12Z

Content type: opinion

Language: en

Sources: [DEV Community: Tony Robalik](<https://devfeed.tech/sources/dev-community-tony-robalik.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Back end](<https://devfeed.tech/topics/backend.md>)

Tags: [analysis](<https://devfeed.tech/tags/analysis.md>), [build-tool](<https://devfeed.tech/tags/build-tool.md>), [coding](<https://devfeed.tech/tags/coding.md>), [community](<https://devfeed.tech/tags/community.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency](<https://devfeed.tech/tags/dependency.md>), [development](<https://devfeed.tech/tags/development.md>), [ecosystem](<https://devfeed.tech/tags/ecosystem.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [inclusive](<https://devfeed.tech/tags/inclusive.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [maven](<https://devfeed.tech/tags/maven.md>), [software](<https://devfeed.tech/tags/software.md>), [software-supply-chain-attack](<https://devfeed.tech/tags/software-supply-chain-attack.md>)

### AI overview

This opinion article examines dependency and classpath problems in the Java ecosystem, including misleading metadata, fat JARs, split packages, reflection, protobuf usage, and compiler differences. It explains how classloader behavior can create conflicts and notes that classpath properties can also enable software supply-chain attacks.

### Source excerpt

I am the author of the moderately popular (⭐ 2k) Dependency Analysis Gradle Plugin, a static analysis tool that helps Gradle build authors maintain a healthy dependency graph. I also maintain some of the largest Gradle repos on the planet: a Kotlin backend repo with over 2500 subprojects, and an Android repo with more than 7200 subprojects (both proprietary). I have... seen some shit. Note: I refer to both the cases above as being part of the "Java ecosystem," though both use Kotlin as the preferred language, and one runs on the JVM while the other runs on ART (the Android runtime) on mobile devices. I come to you with a simple proposition: I believe the Java ecosystem is cursed. Hear me out. We are cursed with... Lying metadata, overuse of "fat" jars with underuse of package relocation, split packages, undocumented usage of reflection to access upstream dependencies, usage of terms like "upstream" that have different meanings in different contexts, misuse of protobuffers, different compilers with different notions of their obligations vis-a-vis the Java class file format... Lying metadata This was already covered in-depth in This is why we can't have nice things: When POM files lie, but the summary is: sometimes dependencies have hand-written metadata, which is certainly A Choice given that build tools exist. I suppose it's harder to teach a build tool to lie. It's just a list, man Despite the bewildering complexity of dependency resolution engines in tools like Gradle and Maven, at the end of the day a classpath is just a list of class files (and jars that package class files). When your running program "sees" a class or interface for the first time, it has to load it. It does this with a ClassLoader. The classloader searches the classpath (just a list of class files!)1 and picks the first class file that matches the class it just encountered. Importantly, your classpath may have more than one class file for that class. Even well-behaved builds may have this problem, fo

## How Chainguard Libraries for Java Secures Dependencies at Maven Central Scale

DevFeed: [How Chainguard Libraries for Java Secures Dependencies at Maven Central Scale](<https://devfeed.tech/articles/this-shit-is-hard-java-archeology-at-a-massive-scale-13285.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/this-shit-is-hard-java-archeology-at-a-massive-scale>)

Published: 2025-06-25T00:00:00Z

Content type: article

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [chainguard libraries](<https://devfeed.tech/topics/chainguard-libraries.md>), [Java](<https://devfeed.tech/topics/java.md>), [Reverse Dependencies](<https://devfeed.tech/topics/reverse-dependencies.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [central](<https://devfeed.tech/tags/central.md>), [chainguard-libraries](<https://devfeed.tech/tags/chainguard-libraries.md>), [chainguard-libraries-for-java](<https://devfeed.tech/tags/chainguard-libraries-for-java.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [graph](<https://devfeed.tech/tags/graph.md>), [java](<https://devfeed.tech/tags/java.md>), [java-libraries](<https://devfeed.tech/tags/java-libraries.md>), [java-packages](<https://devfeed.tech/tags/java-packages.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [supply-chain](<https://devfeed.tech/tags/supply-chain.md>)

### AI overview

This article explains how Chainguard is building Chainguard Libraries for Java to secure open-source JVM dependencies from Maven Central. It describes the repository's scale and the initial selection strategy, which uses dependency-graph data to identify popular libraries and prioritizes newer projects.

### Source excerpt

Chainguard Libraries for Java is Chainguard's repository of malware-resistant Java dependencies. Learn how we are building and maintaining over 50,000 projects.

## New Maven Central signing key and snapshot location

DevFeed: [New Maven Central signing key and snapshot location](<https://devfeed.tech/articles/new-maven-central-signing-key-and-snapshot-location-29012.md>)

Original publisher: [Read original article](<https://code.cash.app/new-maven-central-signing-key-and-snapshot-location>)

Author: Jake Wharton

Published: 2025-06-13T00:00:00Z

Content type: release

Language: en

Sources: [Cash App Code Blog](<https://devfeed.tech/sources/cash-app-code-blog.md>)

Topics: [Maven Central](<https://devfeed.tech/topics/maven-central.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Publishing](<https://devfeed.tech/topics/publishing.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [end-of-life](<https://devfeed.tech/tags/end-of-life.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [open-source-artifacts](<https://devfeed.tech/tags/open-source-artifacts.md>), [public-key](<https://devfeed.tech/tags/public-key.md>), [release](<https://devfeed.tech/tags/release.md>), [server-android](<https://devfeed.tech/tags/server-android.md>), [signing](<https://devfeed.tech/tags/signing.md>), [snapshot](<https://devfeed.tech/tags/snapshot.md>), [snapshots](<https://devfeed.tech/tags/snapshots.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

Cash App migrated its open source artifact publishing to Sonatype's new platform after OSSRH reached end of life. The change introduces a company-wide GPG signing key and moves snapshot builds to the Central Portal Snapshot repository.

### Source excerpt

In response to Sonatype announcing the end-of-life for OSSRH, we have migrated to their new publishing platform for our open source artifacts. This is otherwise a transparent change for those who consume these artifacts from Maven Central, but there are two related changes which might affect your builds.

## How to use a project-specific Maven repository when dependency downloads fail

DevFeed: [How to use a project-specific Maven repository when dependency downloads fail](<https://devfeed.tech/articles/don-t-let-maven-block-you-25588.md>)

Original publisher: [Read original article](<https://www.marcogomiero.com/posts/2025/ublock-maven/>)

Author: Marco Gomiero

Published: 2025-01-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Posts on Marco Gomiero](<https://devfeed.tech/sources/posts-on-marco-gomiero.md>)

Topics: [Maven](<https://devfeed.tech/topics/maven.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [binaries](<https://devfeed.tech/tags/binaries.md>), [build](<https://devfeed.tech/tags/build.md>), [ci](<https://devfeed.tech/tags/ci.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency](<https://devfeed.tech/tags/dependency.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [incident](<https://devfeed.tech/tags/incident.md>), [maven](<https://devfeed.tech/tags/maven.md>)

### AI overview

This tutorial explains how to keep a project building when a Maven repository is unavailable or a dependency can no longer be downloaded. It shows how to create a project-specific local Maven repository, recover the dependency binary from the Gradle cache when available, and configure Gradle to use the local repository for that library.

### Source excerpt

As developers, we've all encountered build failures in CI (or on our local machines) due to Maven repository issues preventing dependency downloads. > Could not download foo-lib-1.0.aar (org.acme.foo:foo-lib:1.0) > Could not get resource 'https://mavenrepo.com/org/acme/foo/foo-lib/1.0/foo-lib-1.0.aar'. > Could not GET 'https://mavenrepo.com/org/acme/foo/foo-lib/1.0/foo-lib-1.0.aar'. Received status code 403 from server: There could be many reasons for this: the Maven repository is currently down or is having an incident, the repository has been shut down (hello, JCenter), and the dependency is old and not republished elsewhere.

## Introducing the Keycloak Test Framework

DevFeed: [Introducing the Keycloak Test Framework](<https://devfeed.tech/articles/introducing-the-keycloak-test-framework-31673.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2024/11/preview-keycloak-test-framework>)

Author: Lukas Hanusovsky

Published: 2024-11-14T00:00:00Z

Content type: release

Language: en

Sources: [Keycloak Blog](<https://devfeed.tech/sources/keycloak-blog.md>)

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [OAuth](<https://devfeed.tech/topics/oauth.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [Firefox](<https://devfeed.tech/topics/firefox.md>), [SDK](<https://devfeed.tech/topics/sdk.md>)

Tags: [browsers](<https://devfeed.tech/tags/browsers.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [framework](<https://devfeed.tech/tags/framework.md>), [guide](<https://devfeed.tech/tags/guide.md>), [idm](<https://devfeed.tech/tags/idm.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [maven](<https://devfeed.tech/tags/maven.md>), [oauth](<https://devfeed.tech/tags/oauth.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [saml](<https://devfeed.tech/tags/saml.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [sso](<https://devfeed.tech/tags/sso.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Keycloak introduces a new test framework designed to replace its current Arquillian-based test suite. The JUnit 5 extension supports custom injection, server and database lifecycles, clients and users, OAuth, UI testing, WebDriver integration, and multiple browsers. The framework is available in the main branch and nightly builds, with migration from the old testsuite beginning.

### Source excerpt

How It All Started The idea to replace the current test suite has been on the table for multiple years. Initially, it was meant to be only a refactoring of the current approach on how to write tests, but after a few internal discussions and refactor updates it turned out a new test suite, based on a new framework would be a better solution. It would be good to mention a few drawbacks, that stand out when working with the current test suite. First of all, is the complexity of various configurations and additions made on top of the Arquillian framework. These changes make the test suite powerful, but the cons is that without proper documentation for beginners is almost unreadable. The second thing has the same importance, the Arquillian framework is not fully supported anymore. Other things to mention are a complicated execution system, where you want to specify what exactly should be tested, then abstract classes with shared configurations and missing the option to add a custom extension. Brighter Future? The Keycloak team began an effort to design a new test framework in May 2024. It started with a prototype to verify if our ideas were feasible. The prototype is a JUnit5 Extension based on the JUnit5 testing framework, specifically to implement JUnit5 callback classes which extend the default test lifecycle functionality and provide custom inject annotations, like @KeycloakIntegrationTest, @InjectWebDriver or @InjectRealm. After a successful test round, we've continued with a proof of concept extending features list to support multiple server modes, different databases and WebDrivers, clients and users setup, SmallRye configuration support, OAuthClient based on Nimbus SDK (this feature is a preview only) etc. The full list of currently implemented features is: Maven BOM Core module Server lifecycle Database lifecycle Admin client injection Realm, User, Client lifecycle and injection Event and Admin event listener and injection OAuth client injection UI module WebDri

## Keycloak Client Libraries 26.0.0 released

DevFeed: [Keycloak Client Libraries 26.0.0 released](<https://devfeed.tech/articles/keycloak-client-libraries-26-0-0-released-31663.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2024/10/keycloak-client-2600-released>)

Author: Keycloak Team

Published: 2024-10-04T00:00:00Z

Content type: release

Language: en

Sources: [Keycloak Blog](<https://devfeed.tech/sources/keycloak-blog.md>)

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [client](<https://devfeed.tech/topics/client.md>), [Maven](<https://devfeed.tech/topics/maven.md>)

Tags: [client](<https://devfeed.tech/tags/client.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [idm](<https://devfeed.tech/tags/idm.md>), [java](<https://devfeed.tech/tags/java.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [keycloak-client-libraries-release](<https://devfeed.tech/tags/keycloak-client-libraries-release.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [maven](<https://devfeed.tech/tags/maven.md>), [migration-guide](<https://devfeed.tech/tags/migration-guide.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [release](<https://devfeed.tech/tags/release.md>), [saml](<https://devfeed.tech/tags/saml.md>), [sso](<https://devfeed.tech/tags/sso.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

Keycloak Client Libraries 26.0.0 introduces an independent release cycle for selected client libraries. The release also supports testing client libraries with the same server version and a few previous major server versions.

### Source excerpt

Highlights Dedicated release cycle for the client libraries From this release, some of the Keycloak client libraries will have release cycle independent of the Keycloak server release cycle. The 26.0.0 release may be the last one when the client libraries are released together with the Keycloak server. But from now on, the client libraries may be released at a different time than the Keycloak server. The client libraries are these artifacts: Java admin client - Maven artifact org.keycloak:keycloak-admin-client Java authorization client - Maven artifact org.keycloak:keycloak-authz-client Java policy enforcer - Maven artifact org.keycloak:keycloak-policy-enforcer It is possible that in the future, some more libraries will be included. Compatibility of the client libraries with the server Beginning with this release, we are testing and supporting client libraries with the same server version and a few previous major server versions. Upgrading Before upgrading refer to the migration guide for a complete list of changes.

## Impact of final JCenter shutdown on Gradle Plugin Portal

DevFeed: [Impact of final JCenter shutdown on Gradle Plugin Portal](<https://devfeed.tech/articles/impact-of-final-jcenter-shutdown-on-gradle-plugin-portal-24682.md>)

Original publisher: [Read original article](<https://blog.gradle.org/portal-jcenter-impact>)

Author: Louis Jacomet

Published: 2024-07-05T04:00:00Z

Content type: article

Language: en

Sources: [The Gradle Blog](<https://devfeed.tech/sources/the-gradle-blog.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [analysis](<https://devfeed.tech/tags/analysis.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [build](<https://devfeed.tech/tags/build.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [jfrog](<https://devfeed.tech/tags/jfrog.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [proxy](<https://devfeed.tech/tags/proxy.md>)

### AI overview

The article analyzes the impact of JCenter becoming a permanent redirect to Maven Central on the Gradle Plugin Portal and Gradle builds. It explains the portal's move from acting as a JCenter proxy to a Maven Central proxy and identifies plugin and transitive-dependency resolution failures that users may encounter.

### Source excerpt

ℹ Update on July 15, 2024 We have found errors causing false positive in failed plugin resolution. 4 plugins have been removed from the list, resulting in 9 removed dependencies. We also added 105 plugins that depend on one or more affected plugins. These will fail to resolve transitively. Not taking exclude into account caused the first change, the second one came from not taking plugin dependencies into account. Now that JFrog has confirmed that JCenter will become a permanent redirect to Maven Central, we felt that it was important for the Gradle Plugin Portal users to understand the impact of that decision on the portal and their builds. This post follows our report after JCenter redirected to Maven Central for a day. Users still directly using JCenter should also refer to our original blog post about the changes in JCenter and their impact on Gradle builds in general. Upcoming Plugin Portal changes JCenter will become a permanent redirect to Maven Central. As a consequence, the Gradle Plugin Portal will no longer act as a JCenter proxy and will instead become a Maven Central proxy. The Gradle Plugin Portal will continue to return redirects (303 See Other) for artifact queries it cannot serve. Starting July 15, 2024, these redirects will be towards Maven Central instead of JCenter. This change might impact existing Gradle builds: Build using plugins with dependencies that are exclusively available on JCenter will fail to resolve. Builds configured to use the Gradle Plugin Portal as a regular artifact repository (which is not recommended) may be impacted. For more information, refer to our original blog post. We aim to document the potential impact on Gradle plugins provided by the Plugin Portal. Read our analysis below to learn how to minimize the impact on your builds. Impact analysis We have performed two major analyses: For all the plugins known to the Gradle Plugin Portal, determine which ones would fail to resolve if their transitive dependencies are resol

## Building minimal and low CVE images for Java

DevFeed: [Building minimal and low CVE images for Java](<https://devfeed.tech/articles/building-minimal-and-low-cve-images-for-java-12907.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/building-minimal-and-low-cve-images-for-java>)

Published: 2024-06-11T00:00:00Z

Content type: article

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [chainguard images](<https://devfeed.tech/topics/chainguard-images.md>), [Java](<https://devfeed.tech/topics/java.md>), [Security](<https://devfeed.tech/topics/security.md>), [Dockerfile](<https://devfeed.tech/topics/dockerfile.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [grype](<https://devfeed.tech/topics/grype.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Docker Hub](<https://devfeed.tech/topics/docker-hub.md>)

Tags: [chainguard](<https://devfeed.tech/tags/chainguard.md>), [chainguard-images](<https://devfeed.tech/tags/chainguard-images.md>), [cves](<https://devfeed.tech/tags/cves.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-hub](<https://devfeed.tech/tags/docker-hub.md>), [grype](<https://devfeed.tech/tags/grype.md>), [java](<https://devfeed.tech/tags/java.md>), [java-migration](<https://devfeed.tech/tags/java-migration.md>), [security](<https://devfeed.tech/tags/security.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

This article demonstrates how to build smaller, lower-CVE container images for Java applications with Chainguard Images. It compares a Maven-based Docker image with a Chainguard equivalent, then uses a multi-stage build to remove build tooling and source code from the production image.

### Source excerpt

Build secure, minimal Java images with fewer CVEs. Learn how Chainguard Images helps you optimize security and performance for your Java applications.

## Nonsensical Maven is still a Gradle problem

DevFeed: [Nonsensical Maven is still a Gradle problem](<https://devfeed.tech/articles/nonsensical-maven-is-still-a-gradle-problem-20949.md>)

Original publisher: [Read original article](<https://jakewharton.com/nonsensical-maven-is-still-a-gradle-problem/>)

Published: 2024-03-28T00:00:00Z

Content type: article

Language: en

Sources: [Jake Wharton](<https://devfeed.tech/sources/jake-wharton.md>)

Topics: [Maven](<https://devfeed.tech/topics/maven.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [build-system](<https://devfeed.tech/tags/build-system.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency](<https://devfeed.tech/tags/dependency.md>), [jvm](<https://devfeed.tech/tags/jvm.md>)

### AI overview

The article argues that Maven's default dependency resolution strategy is problematic for libraries built with Gradle. It explains dependency graphs and contrasts Gradle's default preference for newer versions with Maven's "nearest definition" rule, where declaration order can cause an older transitive dependency to win.

### Source excerpt

There was a time when I used Maven heavily, but today all the libraries I work on build with Gradle. Even though I'm publishing with Gradle, consumers can use Gradle, Maven, Bazel, jars in libs/ (but please don't), or anything else. That's a huge JVM ecosystem win! In general, I don't have to think about what build system someone is using. I'm not here to debate subjective pros and cons of one versus any other. There is one notable exception, however. Maven's dependency resolution strategy is objectively bonkers. And if we want to support Maven consumers, we need to think about it. If you already are familiar with the concept of dependency resolution, you can skip to the nonsense. Dependency resolution primer Chances are your build system of choice (or a separate dependency resolver tool) gives you a declarative way to describe your dependencies. At build time, those declarations are resolved to .jars which can be put on the compiler classpath. Sometimes we call this a dependency tree, but it's actually a dependency graph, as separate nodes can converge back to something common to both. Project (build.gradle) ├── A │ └── B │ └── C v1.0 └── D └── C v1.0 If library B and library D agree on the version of library C, then that is the .jar version which is used. If they disagree on versions, some policy needs to decide the appropriate single version to use. Pop quiz: If library B wants version 1.1 of library C, and library D wants version 1.0 of library C, which single version of C should we use? Project (build.gradle) ├── A │ └── B │ └── C v1.1 └── D └── C v1.0 This is not a trick question. Hopefully the answer feels obvious: you use the newer version, 1.1. That version is probably compatible with 1.0, so it's safe for both library B and library D to use. We can't know for sure, to be clear, but it's a safe choice. This behavior is the default in many dependency resolvers, including the one inside Gradle. The nonsense When building with Maven, given two dependencies who

## Krampus delivers an end-of-year Struts vulnerability

DevFeed: [Krampus delivers an end-of-year Struts vulnerability](<https://devfeed.tech/articles/krampus-delivers-an-end-of-year-struts-vulnerability-8194.md>)

Original publisher: [Read original article](<https://snyk.io/blog/struts-path-traversal-vulnerability/>)

Author: Micah Silverman

Published: 2024-01-02T06:00:00Z

Content type: article

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [vulnerability](<https://devfeed.tech/topics/vulnerability.md>), [Cybersecurity](<https://devfeed.tech/topics/cybersecurity.md>), [Exploit](<https://devfeed.tech/topics/exploit.md>), [Library](<https://devfeed.tech/topics/library.md>), [Java](<https://devfeed.tech/topics/java.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [acquisition](<https://devfeed.tech/tags/acquisition.md>), [apache](<https://devfeed.tech/tags/apache.md>), [application-security](<https://devfeed.tech/tags/application-security.md>), [blog](<https://devfeed.tech/tags/blog.md>), [breach](<https://devfeed.tech/tags/breach.md>), [code](<https://devfeed.tech/tags/code.md>), [code-security](<https://devfeed.tech/tags/code-security.md>), [cve](<https://devfeed.tech/tags/cve.md>), [cybersecurity](<https://devfeed.tech/tags/cybersecurity.md>), [developer](<https://devfeed.tech/tags/developer.md>), [devrel](<https://devfeed.tech/tags/devrel.md>), [exploit](<https://devfeed.tech/tags/exploit.md>), [github](<https://devfeed.tech/tags/github.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [java](<https://devfeed.tech/tags/java.md>), [open-source-security](<https://devfeed.tech/tags/open-source-security.md>), [security](<https://devfeed.tech/tags/security.md>), [snyk](<https://devfeed.tech/tags/snyk.md>), [snyk-cloud](<https://devfeed.tech/tags/snyk-cloud.md>), [snyk-open-source](<https://devfeed.tech/tags/snyk-open-source.md>), [update](<https://devfeed.tech/tags/update.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>)

### AI overview

This article explains CVE-2023-50164, a critical path traversal vulnerability in Apache Struts. It describes the risk of remote code execution, demonstrates a proof-of-concept exploit, and recommends upgrading Struts to 2.5.33 or 6.3.0.2 or later.

### Source excerpt

CVE-2023-50164 is a critical vulnerability in the Apache Struts library. Learn how to find and fix by upgrading your package and using Snyk to discover and remediate.

[Next page](<https://devfeed.tech/topics/maven.md?cursor=WyIyMDI0LTAxLTAyVDA2OjAwOjAwKzAwOjAwIiwgImZkYmVlODFiLWRkNTctNGJmNi04NmRhLTIxM2Q2MjIyOWQwMSJd>)