⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
8f01f26
adding support for HttpPipeline
salaboy Oct 24, 2025
da7b542
using default constructor
salaboy Oct 24, 2025
e6deded
fixing codestyle
salaboy Oct 24, 2025
f95faae
Add statestore example with Outbox pattern (#1582)
mcruzdev Oct 24, 2025
1b99814
adding new method signature plus test (#1570)
salaboy Oct 24, 2025
a117f6e
Bump actions/upload-artifact from 4 to 5 (#1587)
dependabot[bot] Oct 27, 2025
a9045be
Add gRPC support to Dapr testcontainer (#1586)
wlfgang Oct 27, 2025
94ac2eb
Use dependencies BOM and remove duplicates. (#1588)
artur-ciocanu Nov 2, 2025
f865f6f
Examples + Docs for App API Token authentication for gRPC and HTTP (#…
cicoyle Nov 6, 2025
12002de
Another set of Maven version, properties and plugin improvements (#1596)
artur-ciocanu Nov 28, 2025
74e0e6a
Adding a Flux based subscribeToEvents method (#1598)
artur-ciocanu Dec 5, 2025
09298eb
Remove SDK docs due to migration to main Docs repo (#1593)
marcduiker Dec 5, 2025
5d65320
Bringing Durable Task Java as a Maven module inside the Java SDK (#1575)
salaboy Dec 13, 2025
8e2a3dd
Bump codecov/codecov-action from 5.5.1 to 5.5.2 (#1607)
dependabot[bot] Dec 16, 2025
48eed5f
Create Dapr WaitStrategy to improve ITs ergonomics (#1609)
artur-ciocanu Jan 3, 2026
3ba2bc9
Bump actions/upload-artifact from 4 to 6 (#1606)
dependabot[bot] Jan 3, 2026
fcc8da5
updating test for checking nulls
salaboy Jan 5, 2026
5e97cb8
Merge branch 'master' into 1584-middleware
salaboy Jan 5, 2026
584e1f9
Merge branch 'master' into 1584-middleware
salaboy Feb 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,27 @@ public class Configuration {
private final String name;
private final TracingConfigurationSettings tracing;
private final AppHttpPipeline appHttpPipeline;
private final HttpPipeline httpPipeline;

// @TODO: add secrets https://github.com/dapr/java-sdk/issues/1280
// @TODO: add metrics https://github.com/dapr/java-sdk/issues/1281
// @TODO: add logging https://github.com/dapr/java-sdk/issues/1282
// @TODO: add middleware httpPipeline https://github.com/dapr/java-sdk/issues/1283
// @TODO: add nameResolution https://github.com/dapr/java-sdk/issues/1284
// @TODO: add disallow components https://github.com/dapr/java-sdk/issues/1285
// @TODO: add mtls https://github.com/dapr/java-sdk/issues/1286

/**
* Creates a new configuration.
*
* @param name Configuration name.
* @param tracing TracingConfigParameters tracing configuration
* parameters.
* @param appHttpPipeline AppHttpPipeline middleware configuration.
*/
public Configuration(String name, TracingConfigurationSettings tracing,
AppHttpPipeline appHttpPipeline) {
this(name, tracing, appHttpPipeline, null);
}

/**
* Creates a new configuration.
Expand All @@ -36,11 +49,15 @@ public class Configuration {
* @param tracing TracingConfigParameters tracing configuration
* parameters.
* @param appHttpPipeline AppHttpPipeline middleware configuration.
* @param httpPipeline HttpPipeline middleware configuration.
*/
public Configuration(String name, TracingConfigurationSettings tracing, AppHttpPipeline appHttpPipeline) {
public Configuration(String name, TracingConfigurationSettings tracing,
AppHttpPipeline appHttpPipeline,
HttpPipeline httpPipeline) {
this.name = name;
this.tracing = tracing;
this.appHttpPipeline = appHttpPipeline;
this.httpPipeline = httpPipeline;
}

public String getName() {
Expand All @@ -54,4 +71,8 @@ public TracingConfigurationSettings getTracing() {
public AppHttpPipeline getAppHttpPipeline() {
return appHttpPipeline;
}

public HttpPipeline getHttpPipeline() {
return httpPipeline;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* Copyright 2025 The Dapr Authors
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
limitations under the License.
*/

package io.dapr.testcontainers;

import java.util.Collections;
import java.util.List;

public class HttpPipeline implements ConfigurationSettings {
private List<ListEntry> handlers;

/**
* Creates an HttpPipeline.
*
* @param handlers List of handlers for the HttpPipeline
*/
public HttpPipeline(List<ListEntry> handlers) {
if (handlers != null) {
this.handlers = Collections.unmodifiableList(handlers);
}
}

public List<ListEntry> getHandlers() {
return handlers;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

import io.dapr.testcontainers.AppHttpPipeline;
import io.dapr.testcontainers.Configuration;
import io.dapr.testcontainers.HttpPipeline;
import io.dapr.testcontainers.ListEntry;
import io.dapr.testcontainers.OtelTracingConfigurationSettings;
import io.dapr.testcontainers.TracingConfigurationSettings;
Expand Down Expand Up @@ -77,6 +78,16 @@ public String convert(Configuration configuration) {

}

HttpPipeline httpPipeline = configuration.getHttpPipeline();
if (httpPipeline != null) {

Map<String, Object> httpPipelineMap = new LinkedHashMap<>();
List<ListEntry> handlers = httpPipeline.getHandlers();
httpPipelineMap.put("handlers", handlers);
configurationSpec.put("httpPipeline", httpPipelineMap);

}

AppHttpPipeline appHttpPipeline = configuration.getAppHttpPipeline();
if (appHttpPipeline != null) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import io.dapr.testcontainers.AppHttpPipeline;
import io.dapr.testcontainers.Configuration;
import io.dapr.testcontainers.DaprContainer;
import io.dapr.testcontainers.HttpPipeline;
import io.dapr.testcontainers.ListEntry;
import io.dapr.testcontainers.OtelTracingConfigurationSettings;
import io.dapr.testcontainers.TracingConfigurationSettings;
Expand All @@ -25,6 +26,7 @@
import static io.dapr.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -48,20 +50,29 @@ public void testConfigurationToYaml() {
);


List<ListEntry> handlers = new ArrayList<>();
handlers.add(new ListEntry("alias", "middleware.http.routeralias"));
List<ListEntry> appHttpHandlers = new ArrayList<>();
appHttpHandlers.add(new ListEntry("alias", "middleware.http.routeralias"));

AppHttpPipeline appHttpPipeline = new AppHttpPipeline(handlers);
AppHttpPipeline appHttpPipeline = new AppHttpPipeline(appHttpHandlers);

List<ListEntry> httpHandlers = new ArrayList<>();

//Notice that this needs to be different objects, if not Snake YAML will add a reference to the object
HttpPipeline httpPipeline = new HttpPipeline(httpHandlers);
httpHandlers.add(new ListEntry("alias", "middleware.http.routeralias"));

DaprContainer dapr = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("dapr-app")
.withAppPort(8081)
.withConfiguration(new Configuration("my-config", tracing, appHttpPipeline))
.withConfiguration(new Configuration("my-config", tracing, appHttpPipeline, httpPipeline))
.withAppChannelAddress("host.testcontainers.internal");

Configuration configuration = dapr.getConfiguration();
assertNotNull(configuration);

assertEquals(httpPipeline, configuration.getHttpPipeline());
assertEquals(appHttpPipeline, configuration.getAppHttpPipeline());

String configurationYaml = converter.convert(configuration);
String expectedConfigurationYaml =
"apiVersion: dapr.io/v1alpha1\n"
Expand All @@ -76,11 +87,42 @@ public void testConfigurationToYaml() {
+ " endpointAddress: localhost:4317\n"
+ " isSecure: false\n"
+ " protocol: grpc\n"
+ " httpPipeline:\n"
+ " handlers:\n"
+ " - name: alias\n"
+ " type: middleware.http.routeralias\n"
+ " appHttpPipeline:\n"
+ " handlers:\n"
+ " - name: alias\n"
+ " type: middleware.http.routeralias\n";

assertEquals(expectedConfigurationYaml, configurationYaml);
}

@Test
public void testConfigurationToYamlNoPipelines() {

DaprContainer dapr = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("dapr-app")
.withAppPort(8081)
.withConfiguration(new Configuration("my-config", null, null, null))
.withAppChannelAddress("host.testcontainers.internal");

Configuration configuration = dapr.getConfiguration();
assertNotNull(configuration);

assertNull(configuration.getHttpPipeline());
assertNull(configuration.getAppHttpPipeline());

String configurationYaml = converter.convert(configuration);

String expectedConfigurationYaml =
"apiVersion: dapr.io/v1alpha1\n"
+ "kind: Configuration\n"
+ "metadata:\n"
+ " name: my-config\n"
+ "spec: {}\n";

assertEquals(expectedConfigurationYaml, configurationYaml);
}
}
Loading