Skip to content

Commit 537612d

Browse files
authored
Rename gateway customization API to extension API
Rename gateway customization API to extension API
2 parents 2d929e0 + cb103f5 commit 537612d

56 files changed

Lines changed: 133 additions & 138 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ It works best overall when used together with the feddi Platform. For full docum
1616

1717
- `gateway/engine` - Composition, validation, query planning, and execution
1818
- `gateway/app` - Spring Boot application that serves the feddi Gateway over HTTP
19-
- `gateway/customization-api` - Public extension API for integrating custom behavior
19+
- `gateway/extension-api` - Public extension API for integrating gateway behavior
2020
- `e2e-tests` - Docker-based end-to-end tests
2121
- `scripts` - Helper scripts for common local workflows
2222

@@ -105,7 +105,7 @@ The feddi Gateway itself recognizes the namespace and forwards its configuration
105105

106106
The default runtime source accepts feddi Gateway definitions through `POST /admin/upload` as multipart form data with a `file` part containing a ZIP archive.
107107

108-
If a custom `FeddiGatewayDefinitionSource` extension is installed and active, ZIP uploads are disabled.
108+
If an extension-provided `FeddiGatewayDefinitionSource` is installed and active, ZIP uploads are disabled.
109109

110110
Accepted ZIP layouts:
111111

@@ -148,7 +148,7 @@ Each subgraph entry must contain:
148148
- `schema.graphqls`
149149
- `config.yaml` or `config.yml`
150150

151-
For the built-in subgraph client, `url` is the only consumed subgraph config key. Custom `SubgraphClientFactory` implementations can read additional keys from the same per-subgraph config map.
151+
For the built-in subgraph client, `url` is the only consumed subgraph config key. Extension-provided `SubgraphClientFactory` implementations can read additional keys from the same per-subgraph config map.
152152

153153
### Launcher Environment Variables
154154

@@ -185,11 +185,11 @@ cd gateway
185185
./gradlew :app:integrationTest
186186
```
187187

188-
If you run `e2e-tests` directly (without `./scripts/run-e2e-tests.sh`) after changing `feddi-gateway/customization-api`, publish the API to your local Maven repository first so the e2e-tests subproject can resolve it:
188+
If you run `e2e-tests` directly (without `./scripts/run-e2e-tests.sh`) after changing `feddi-gateway/extension-api`, publish the API to your local Maven repository first so the e2e-tests subproject can resolve it:
189189

190190
```bash
191191
cd gateway
192-
./gradlew :customization-api:publishToMavenLocal
192+
./gradlew :extension-api:publishToMavenLocal
193193
cd ../e2e-tests
194194
./gradlew test
195195
```

e2e-tests/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ build
77
# Ignore copied feddi Gateway JAR (build artifact)
88
docker/feddi-gateway/*.jar
99

10-
# Ignore copied customizations JARs (build artifacts)
10+
# Ignore copied extensions JARs (build artifacts)
1111
docker/feddi-gateway/libs/
1212
docker/gateway/libs/

e2e-tests/build.gradle

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -77,24 +77,19 @@ tasks.register('copyFeddiGatewayJar', Copy) {
7777
}
7878
}
7979

80-
// Task to copy the customizations JAR for Docker build
81-
tasks.register('copyCustomizationsJar', Copy) {
82-
description = 'Copies the customizations JAR for Docker build'
83-
dependsOn ':customizations:jar'
80+
// Task to copy the extensions JAR for Docker build
81+
tasks.register('copyExtensionsJar', Sync) {
82+
description = 'Copies the extensions JAR for Docker build'
83+
dependsOn ':extensions:jar'
8484

85-
def customizationsJarDir = file("${projectDir}/customizations/build/libs")
85+
def extensionsJarDir = file("${projectDir}/extensions/build/libs")
8686
def libsDir = file("${projectDir}/docker/feddi-gateway/libs")
8787

88-
from(customizationsJarDir) {
88+
from(extensionsJarDir) {
8989
include '*.jar'
9090
}
9191
into libsDir
92-
93-
doFirst {
94-
// Ensure libs directory exists
95-
libsDir.mkdirs()
96-
}
9792
}
9893

9994
// Ensure JARs are copied before running tests
100-
test.dependsOn copyFeddiGatewayJar, copyCustomizationsJar
95+
test.dependsOn copyFeddiGatewayJar, copyExtensionsJar

e2e-tests/customizations/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

Lines changed: 0 additions & 2 deletions
This file was deleted.

e2e-tests/docker/feddi-gateway/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ WORKDIR /app
55
# Copy the Spring Boot JAR (copied by Gradle copyFeddiGatewayJar task)
66
COPY app.jar app.jar
77

8-
# Copy customizations JAR (if present)
8+
# Copy extensions JAR (if present)
99
COPY libs/ libs/
1010

1111
# Copy feddi-gateway configuration
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ checkstyle {
2525
}
2626

2727
dependencies {
28-
// Depend on the gateway customization API (published to Maven local)
29-
implementation 'dev.feddi.federation:customization-api:1.0-SNAPSHOT'
28+
// Depend on the gateway extension API (published to Maven local)
29+
implementation 'dev.feddi.federation:extension-api:1.0-SNAPSHOT'
3030

3131
// Spring Boot auto-configuration support
3232
implementation libs.spring.boot.autoconfigure

e2e-tests/customizations/src/main/java/e2e/customizations/E2eCustomizationConfig.java renamed to e2e-tests/extensions/src/main/java/e2e/extensions/E2eExtensionConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package e2e.customizations;
1+
package e2e.extensions;
22

33
import com.fasterxml.jackson.annotation.JsonProperty;
44

55
/**
6-
* Configuration for the e2e test customization.
6+
* Configuration for the e2e test extension.
77
* Deserialized from the {@code extensions.e2e} section of feddi-gateway.yml.
88
*/
9-
public class E2eCustomizationConfig {
9+
public class E2eExtensionConfig {
1010

1111
@JsonProperty("timeout-seconds")
1212
private int timeoutSeconds = 10;

e2e-tests/customizations/src/main/java/e2e/customizations/JavaHttpSubgraphClient.java renamed to e2e-tests/extensions/src/main/java/e2e/extensions/JavaHttpSubgraphClient.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package e2e.customizations;
1+
package e2e.extensions;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
4-
import dev.feddi.federation.customization.FeddiGatewayRequestContext;
5-
import dev.feddi.federation.customization.SubgraphClient;
4+
import dev.feddi.federation.extension.FeddiGatewayRequestContext;
5+
import dev.feddi.federation.extension.SubgraphClient;
66
import graphql.ErrorClassification;
77
import graphql.ErrorType;
88
import graphql.ExecutionResult;

e2e-tests/customizations/src/main/java/e2e/customizations/JavaHttpSubgraphClientFactoryAutoConfiguration.java renamed to e2e-tests/extensions/src/main/java/e2e/extensions/JavaHttpSubgraphClientFactoryAutoConfiguration.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package e2e.customizations;
1+
package e2e.extensions;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
4-
import dev.feddi.federation.customization.ConfigurableExtension;
5-
import dev.feddi.federation.customization.SubgraphClient;
6-
import dev.feddi.federation.customization.SubgraphClientFactory;
7-
import dev.feddi.federation.customization.SubgraphSettings;
4+
import dev.feddi.federation.extension.ConfigurableExtension;
5+
import dev.feddi.federation.extension.SubgraphClient;
6+
import dev.feddi.federation.extension.SubgraphClientFactory;
7+
import dev.feddi.federation.extension.SubgraphSettings;
88
import org.slf4j.Logger;
99
import org.slf4j.LoggerFactory;
1010
import org.springframework.boot.autoconfigure.AutoConfiguration;
@@ -15,11 +15,11 @@
1515
import java.time.Duration;
1616

1717
/**
18-
* Auto-configuration for the custom Java HttpClient-based SubgraphClientFactory.
18+
* Auto-configuration for the extension-provided Java HttpClient-based SubgraphClientFactory.
1919
* Implements {@link ConfigurableExtension} to receive timeout configuration from feddi-gateway.yml.
2020
*/
2121
@AutoConfiguration
22-
public class JavaHttpSubgraphClientFactoryAutoConfiguration implements ConfigurableExtension<E2eCustomizationConfig> {
22+
public class JavaHttpSubgraphClientFactoryAutoConfiguration implements ConfigurableExtension<E2eExtensionConfig> {
2323

2424
private static final Logger logger = LoggerFactory.getLogger(JavaHttpSubgraphClientFactoryAutoConfiguration.class);
2525

@@ -31,20 +31,20 @@ public String configNamespace() {
3131
}
3232

3333
@Override
34-
public Class<E2eCustomizationConfig> configType() {
35-
return E2eCustomizationConfig.class;
34+
public Class<E2eExtensionConfig> configType() {
35+
return E2eExtensionConfig.class;
3636
}
3737

3838
@Override
39-
public void onConfigLoaded(E2eCustomizationConfig config) {
39+
public void onConfigLoaded(E2eExtensionConfig config) {
4040
this.timeoutSeconds = config.getTimeoutSeconds();
41-
logger.info("[CUSTOM FACTORY] Configured from feddi-gateway.yml: timeout={}s", timeoutSeconds);
41+
logger.info("[EXTENSION FACTORY] Configured from feddi-gateway.yml: timeout={}s", timeoutSeconds);
4242
}
4343

4444
@Bean
4545
@Primary
4646
public SubgraphClientFactory javaHttpSubgraphClientFactory() {
47-
logger.info("[CUSTOM FACTORY] JavaHttpSubgraphClientFactory LOADED (timeout={}s)", timeoutSeconds);
47+
logger.info("[EXTENSION FACTORY] JavaHttpSubgraphClientFactory LOADED (timeout={}s)", timeoutSeconds);
4848

4949
HttpClient httpClient = HttpClient.newBuilder()
5050
.connectTimeout(Duration.ofSeconds(timeoutSeconds))
@@ -55,7 +55,7 @@ public SubgraphClientFactory javaHttpSubgraphClientFactory() {
5555
@Override
5656
public SubgraphClient create(String subgraphName, SubgraphSettings settings) {
5757
String url = settings.config().get("url").toString();
58-
logger.info("[CUSTOM FACTORY] Creating client for subgraph '{}' at URL: {}",
58+
logger.info("[EXTENSION FACTORY] Creating client for subgraph '{}' at URL: {}",
5959
subgraphName, url);
6060
return new JavaHttpSubgraphClient(httpClient, objectMapper, url, subgraphName);
6161
}

e2e-tests/customizations/src/main/java/e2e/customizations/TestDocumentProvider.java renamed to e2e-tests/extensions/src/main/java/e2e/extensions/TestDocumentProvider.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package e2e.customizations;
1+
package e2e.extensions;
22

3-
import dev.feddi.federation.customization.DocumentProvider;
4-
import dev.feddi.federation.customization.FeddiGatewayRequestContext;
3+
import dev.feddi.federation.extension.DocumentProvider;
4+
import dev.feddi.federation.extension.FeddiGatewayRequestContext;
55
import graphql.ExecutionInput;
66
import graphql.GraphqlErrorBuilder;
77
import graphql.execution.preparsed.PreparsedDocumentEntry;

0 commit comments

Comments
 (0)