You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2025-07-09-quarkus-and-a2a-java-sdk.adoc
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -230,7 +230,7 @@ $ mvn quarkus:dev
230
230
231
231
We've gone from a Quarkus LangChain4j AI service to an A2A server agent in just a few steps!
232
232
233
-
The source code for this example is available https://github.com/a2aproject/a2a-samples/tree/main/samples/multi_language/python_and_java_multiagent/weather_agent[here].
233
+
The source code for this example is available https://github.com/a2aproject/a2a-samples/tree/main/samples/java/agents/weather_mcp[here].
234
234
235
235
== Validating our A2A Server Agent Using the A2A Inspector
This is a multi-agent example where a host agent delegates requests to two different A2A server agents, an Airbnb agent and our Weather agent, based on the user's question. Under the hood, the host agent makes use of each agent's agent card to determine the capabilities of each agent and uses an LLM to determine which agent to delegate the request to based on their capabilities.
256
256
257
-
The https://github.com/a2aproject/a2a-samples/tree/main/samples/multi_language/python_and_java_multiagent/airbnb_agent[Airbnb agent] is a Python agent that's implemented using LangGraph and makes use of the A2A Python SDK.
257
+
The https://github.com/a2aproject/a2a-samples/tree/main/samples/python/agents/airbnb_planner_multiagent/airbnb_agent[Airbnb agent] is a Python agent that's implemented using LangGraph and makes use of the A2A Python SDK.
258
258
259
-
The https://github.com/a2aproject/a2a-samples/tree/main/samples/multi_language/python_and_java_multiagent/weather_agent[Weather agent] is our Java agent that's implemented using Quarkus LangChain4j and makes use of the A2A Java SDK.
259
+
The https://github.com/a2aproject/a2a-samples/tree/main/samples/java/agents/weather_mcp[Weather agent] is our Java agent that's implemented using Quarkus LangChain4j and makes use of the A2A Java SDK.
260
260
261
261
Notice that the host agent uses A2A clients written in Python to communicate with the server agents. It's also possible to use an https://github.com/a2aproject/a2a-java?tab=readme-ov-file#a2a-client[A2A client] written in Java using our A2A Java SDK.
262
262
263
-
The complete source code for this example is available https://github.com/a2aproject/a2a-samples/tree/main/samples/multi_language/python_and_java_multiagent[here]. To experiment with this multi-agent example, try sending different types of questions to the host agent, for example:
263
+
The complete source code for this example is available https://github.com/a2aproject/a2a-samples/tree/main/samples/python/hosts/weather_and_airbnb_planner[here]. To experiment with this multi-agent example, try sending different types of questions to the host agent, for example:
Copy file name to clipboardExpand all lines: _versions/main/guides/security-oidc-bearer-token-authentication-tutorial.adoc
+23-27Lines changed: 23 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -198,14 +198,33 @@ For more information, see the <<bearer-token-tutorial-keycloak-dev-mode>> sectio
198
198
For more information, see the Quarkus xref:security-oidc-configuration-properties-reference.adoc[OpenID Connect (OIDC) configuration properties] guide.
199
199
200
200
201
-
== Start and configure the Keycloak server
201
+
[[bearer-token-tutorial-keycloak-dev-mode]]
202
+
== Run the application in dev mode
202
203
203
-
. Put the link:{quickstarts-tree-url}/security-openid-connect-quickstart/config/quarkus-realm.json[realm configuration file] on the classpath (`target/classes` directory) so that it gets imported automatically when running in dev mode.
204
-
You do not need to do this if you have already built a link:{quickstarts-tree-url}/security-openid-connect-quickstart[complete solution], in which case, this realm file is added to the classpath during the build.
204
+
Put the link:{quickstarts-tree-url}/security-openid-connect-quickstart/config/quarkus-realm.json[realm configuration file] in the `src/main/resources` application folder so that it gets copied to the classpath and imported automatically to Keycloak. You do not need to do this if you have already built a link:{quickstarts-tree-url}/security-openid-connect-quickstart[complete solution], in which case, this realm file is added to the classpath during the build.
205
+
206
+
. To run the application in dev mode, run the following commands:
205
207
+
208
+
====
209
+
include::{includes}/devtools/dev.adoc[]
210
+
====
211
+
* xref:security-openid-connect-dev-services.adoc[Dev Services for Keycloak] will start a Keycloak container and import a `quarkus-realm.json`.
212
+
. Open a xref:dev-ui.adoc[Dev UI], which you can find at http://localhost:8080/q/dev-ui[/q/dev-ui].
213
+
Then, in an `OpenID Connect` card, click the `Keycloak provider` link .
214
+
. When prompted to log in to a `Single Page Application` provided by `OpenID Connect Dev UI`, do the following steps:
215
+
216
+
* Log in as `alice` (password: `alice`), who has a `user` role.
217
+
** Accessing `/api/admin` returns a `403` status code.
218
+
** Accessing `/api/users/me` returns a `200` status code.
219
+
* Log out and log in again as `admin` (password: `admin`), who has both `admin` and `user` roles.
220
+
** Accessing `/api/admin` returns a `200` status code.
221
+
** Accessing `/api/users/me` returns a `200` status code.
222
+
223
+
== Start and configure the Keycloak server
224
+
206
225
[NOTE]
207
226
====
208
-
Do not start the Keycloak server when you run the application in dev mode; `Dev Services for Keycloak` will start a container.
227
+
Do not start the Keycloak server when you <<bearer-token-tutorial-keycloak-dev-mode,run the application in dev mode>>; `Dev Services for Keycloak` will start and configure a container.
209
228
For more information, see the <<bearer-token-tutorial-keycloak-dev-mode>> section.
210
229
====
211
230
+
@@ -245,31 +264,8 @@ For more information, see the xref:security-keycloak-admin-client.adoc[Quarkus K
245
264
endif::no-quarkus-keycloak-admin-client[]
246
265
247
266
248
-
249
-
[[bearer-token-tutorial-keycloak-dev-mode]]
250
-
== Run the application in dev mode
251
-
252
-
. To run the application in dev mode, run the following commands:
253
-
+
254
-
====
255
-
include::{includes}/devtools/dev.adoc[]
256
-
====
257
-
* xref:security-openid-connect-dev-services.adoc[Dev Services for Keycloak] will start a Keycloak container and import a `quarkus-realm.json`.
258
-
. Open a xref:dev-ui.adoc[Dev UI], which you can find at http://localhost:8080/q/dev-ui[/q/dev-ui].
259
-
Then, in an `OpenID Connect` card, click the `Keycloak provider` link .
260
-
. When prompted to log in to a `Single Page Application` provided by `OpenID Connect Dev UI`, do the following steps:
261
-
262
-
* Log in as `alice` (password: `alice`), who has a `user` role.
263
-
** Accessing `/api/admin` returns a `403` status code.
264
-
** Accessing `/api/users/me` returns a `200` status code.
265
-
* Log out and log in again as `admin` (password: `admin`), who has both `admin` and `user` roles.
266
-
** Accessing `/api/admin` returns a `200` status code.
267
-
** Accessing `/api/users/me` returns a `200` status code.
268
-
269
267
== Run the Application in JVM mode
270
268
271
-
When you are done with dev mode, you can run the application as a standard Java application.
0 commit comments