Skip to content

Feat spring boot starter - #653

Open
mekkiamiri wants to merge 1 commit into
google:mainfrom
mekkiamiri:feat-spring-boot-starter
Open

Feat spring boot starter#653
mekkiamiri wants to merge 1 commit into
google:mainfrom
mekkiamiri:feat-spring-boot-starter

Conversation

@mekkiamiri

@mekkiamiri mekkiamiri commented Dec 6, 2025

Copy link
Copy Markdown

This pull requests, adds support to spring boot starter.
In addition, i added an example to show how to use the starter.
This starter integrates the Google Agent Development Kit (ADK) into Spring Boot applications.
It provides auto-configuration for :

  • BaseArtifactService and Storage
  • BaseMemoryService
  • RunConfig
  • BaseSessionService

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @mekkiamiri, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request delivers a new Spring Boot Starter for the Google Agent Development Kit (ADK), streamlining the process of building agent-powered applications within the Spring ecosystem. It encapsulates the setup of essential ADK components, offering flexible configuration options for various service implementations. The inclusion of a dedicated sample application provides a practical guide for developers to quickly adopt and utilize the starter.

Highlights

  • New Spring Boot Starter: Introduced adk-spring-boot-starter to simplify integration of the Google Agent Development Kit (ADK) with Spring Boot applications.
  • Auto-Configuration: The starter provides auto-configuration for core ADK services including Artifacts, Session, Memory, and RunConfig, making them easily injectable as Spring beans.
  • Configurable Services: ADK services can be configured via application.yaml to use different implementations, such as GcsArtifactService for artifacts and VertexAiSessionService for sessions, or default in-memory versions.
  • New Sample Application: A new sample Spring Boot application (spring-boot-adk-template) has been added to demonstrate the usage and verification of the ADK Spring Boot Starter.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new Spring Boot starter for the Google Agent Development Kit (ADK), which is a valuable addition for easier integration. The auto-configuration logic is generally well-structured. My review focuses on several critical dependency versioning issues in the pom.xml files that could lead to build failures. I've also provided suggestions to improve the auto-configuration classes by adhering more closely to Spring best practices, such as proper dependency injection and failing fast on unsupported configurations. The sample application is a helpful example, and I've included some refactoring suggestions to enhance it as a template.

Comment thread contrib/adk-spring-boot-starter/pom.xml Outdated
Comment thread contrib/samples/spring-boot-adk-template/pom.xml Outdated
Comment thread contrib/adk-spring-boot-starter/pom.xml Outdated
Comment thread contrib/samples/spring-boot-adk-template/pom.xml Outdated
@glaforge

Copy link
Copy Markdown
Contributor

FYI @ddobrin

@mekkiamiri

Copy link
Copy Markdown
Author

hello @ddobrin

following up on this PR. Please let me know if you’ve had a chance to review it or if you need any additional context from my side.

@ddobrin

ddobrin commented Mar 18, 2026

Copy link
Copy Markdown
Contributor

Hi @mekkiamiri
I'd like to make a few notes, if you'd like to consider them:

  1. Spring Boot BOM version conflict
  • Starter pom.xml sets spring-boot.version=4.0.0 but imports spring-boot-dependencies:3.3.0 as a BOM
  • Mixing Spring Boot 4.x artifacts with 3.x BOM will cause class incompatibilities
  • Root project uses spring-boot.version=4.0.2
  • File: contrib/adk-spring-boot-starter/pom.xml lines 12-13 and 37-42
  1. Duplicate Storage instantiation
  • AdkArtifactsAutoConfiguration.artifactService() creates StorageOptions.getDefaultInstance().getService() directly instead of injecting the googleCloudStorage() bean
  • Two separate Storage clients are created when GCS is enabled
  • File: contrib/adk-spring-boot-starter/src/main/java/com/google/adk/autoconfigure/AdkArtifactsAutoConfiguration.java lines 18-24
  1. ADK version mismatches
  • Starter version: 0.4.1-SNAPSHOT, project version: 0.9.1-SNAPSHOT
  • Sample references starter version 0.3.0
  • File: contrib/adk-spring-boot-starter/pom.xml line 5 and contrib/samples/spring-boot-adk-template/pom.xml line 18
  1. Incomplete RunConfig auto-configuration
  • Only streamingMode is exposed as a property
  • RunConfig also has: maxLlmCalls, toolExecutionMode, saveInputBlobsAsArtifacts, autoCreateSession
  • These are all important operational settings for a Spring Boot deployment
  • File: contrib/adk-spring-boot/starter/src/main/java/com/google/adk/autoconfigure/properties/AdkRunConfigProperties.java
  • Reference: core/src/main/java/com/google/adk/agents/RunConfig.java

@mekkiamiri
mekkiamiri force-pushed the feat-spring-boot-starter branch from 4f3123c to 66ab62c Compare June 14, 2026 23:47
@mekkiamiri

Copy link
Copy Markdown
Author

Hi @ddobrin
i update the pr could you please check ?
Thanks

@mekkiamiri
mekkiamiri force-pushed the feat-spring-boot-starter branch from 66ab62c to e9e929f Compare June 22, 2026 08:15
@glaforge
glaforge force-pushed the feat-spring-boot-starter branch from e9e929f to 30fe228 Compare June 22, 2026 20:55
@mekkiamiri
mekkiamiri force-pushed the feat-spring-boot-starter branch from 30fe228 to 69500eb Compare June 24, 2026 09:03
@mekkiamiri
mekkiamiri force-pushed the feat-spring-boot-starter branch 2 times, most recently from e6dc10b to 45d4d67 Compare July 3, 2026 13:24
@hemasekhar-p hemasekhar-p self-assigned this Jul 22, 2026
@hemasekhar-p

Copy link
Copy Markdown
Contributor

Hi @mekkiamiri, thank you for your contribution! We appreciate you taking the time to submit this pull request.To move forward with the review process, could you please squash your commits into a single commit?

@hemasekhar-p hemasekhar-p added the waiting on reporter Waiting for reaction by reporter. Failing that, maintainers will eventually closed it as stale. label Jul 22, 2026
@mekkiamiri
mekkiamiri force-pushed the feat-spring-boot-starter branch 2 times, most recently from 6c9adc7 to dedd203 Compare July 27, 2026 13:31
@mekkiamiri

Copy link
Copy Markdown
Author

@hemasekhar-p i have done the requested changes.
Could you please check

@hemasekhar-p

Copy link
Copy Markdown
Contributor

@mekkiamiri, thank you for addressing the feedback and squashing your commits, Currently this PR is under review by our team, we will keep you posted if any additional information is required. thank you.

@hemasekhar-p hemasekhar-p added needs review and removed waiting on reporter Waiting for reaction by reporter. Failing that, maintainers will eventually closed it as stale. labels Jul 27, 2026
@mekkiamiri
mekkiamiri force-pushed the feat-spring-boot-starter branch from dedd203 to f849ddf Compare July 27, 2026 14:49
@mekkiamiri
mekkiamiri force-pushed the feat-spring-boot-starter branch from f849ddf to a342ae3 Compare July 27, 2026 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants