Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion buildSrc/src/main/groovy/gdk-base.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ repositories {
dependencies {
compileOnly mnLibs.jsr305 // for 'warning: unknown enum constant When.MAYBE'
implementation mnLibs.jakarta.annotation.api
runtimeOnly libs.logback.classic
runtimeOnly mnLibs.logback.classic
}

java {
Expand Down
6 changes: 3 additions & 3 deletions buildSrc/src/main/groovy/gdk-cli.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
plugins {
id 'gdk-module'
id 'io.micronaut.application'
id 'com.github.johnrengelman.shadow'
id 'com.gradleup.shadow'
}

dependencies {
Expand All @@ -31,15 +31,15 @@ dependencies {
runtimeOnly libs.bouncycastle.bcprov
runtimeOnly libs.jansi
runtimeOnly libs.jline
runtimeOnly libs.slf4j.nop
runtimeOnly mnLibs.slf4j.nop
}

configurations.configureEach {
exclude module: 'logback-classic'
}

micronaut {
version libs.micronaut.starter.api.get().version
version libs.versions.micronaut.starter.get()
processing {
incremental true
annotations 'cloud.graal.gdk.*'
Expand Down
2 changes: 1 addition & 1 deletion gdk-cli-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ dependencies {
}

micronaut {
version libs.micronaut.starter.api.get().version
version libs.versions.micronaut.starter.get()
processing {
incremental true
annotations 'cloud.graal.gdk.*'
Expand Down
13 changes: 1 addition & 12 deletions gdk-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,6 @@ dependencies {
exclude group: 'org.eclipse.jgit', module: 'org.eclipse.jgit'
}
implementation(mnLibs.micronaut.http.client)
implementation(libs.netty.buffer)
implementation(libs.netty.codec)
implementation(libs.netty.codec.http)
implementation(libs.netty.codec.http2)
implementation(libs.netty.codec.socks)
implementation(libs.netty.common)
implementation(libs.netty.handler)
implementation(libs.netty.handler.proxy)
implementation(libs.netty.resolver)
implementation(libs.netty.transport)
implementation(libs.netty.transport.native.unix.common)
}

def writeVersions = tasks.register('writeVersions', cloud.graal.gdk.util.WriteVersionsTask) {
Expand All @@ -74,7 +63,7 @@ sourceSets {
}

micronaut {
version libs.micronaut.starter.api.get().version
version libs.versions.micronaut.starter.get()
processing {
incremental true
annotations 'cloud.graal.gdk.*'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ public class GdkGeneratorContext extends GeneratorContext {
/**
* The id of the Gradle Shadow plugin.
*/
public static final String PLUGIN_SHADOW = "com.github.johnrengelman.shadow";
public static final String PLUGIN_SHADOW = "com.gradleup.shadow";

private static final String PLUGIN_GRADLE_AZUREFUNCTIONS = "com.microsoft.azure.azurefunctions";
private static final String PLUGIN_MAVEN_AZUREFUNCTIONS = "azure-functions-maven-plugin";
Expand All @@ -122,7 +122,7 @@ public class GdkGeneratorContext extends GeneratorContext {
);

private static final Map<String, String> PLUGIN_GAVS = Map.ofEntries(
gavMapEntry("com.github.johnrengelman.shadow", "com.github.johnrengelman:shadow", StarterCoordinates.SHADOW),
gavMapEntry("com.gradleup.shadow", "com.gradleup.shadow:com.gradleup.shadow.gradle.plugin", StarterCoordinates.COM_GRADLEUP_SHADOW_GRADLE_PLUGIN),
gavMapEntry("io.micronaut.application", "io.micronaut.gradle:micronaut-gradle-plugin", GdkDependencies.IO_MICRONAUT_GRADLE_MICRONAUT_GRADLE_PLUGIN),
gavMapEntry("io.micronaut.library", "io.micronaut.gradle:micronaut-gradle-plugin", GdkDependencies.IO_MICRONAUT_GRADLE_MICRONAUT_GRADLE_PLUGIN),
gavMapEntry("io.micronaut.test-resources", "io.micronaut.gradle:micronaut-test-resources-plugin", GdkDependencies.IO_MICRONAUT_GRADLE_MICRONAUT_GRADLE_PLUGIN),
Expand All @@ -132,7 +132,8 @@ public class GdkGeneratorContext extends GeneratorContext {
gavMapEntry("com.google.cloud.tools.jib", "com.google.cloud.tools.jib:com.google.cloud.tools.jib.gradle.plugin", StarterCoordinates.JIB_GRADLE_PLUGIN),
gavMapEntry("io.micronaut.aot", "io.micronaut.gradle:micronaut-aot-plugin", GdkDependencies.IO_MICRONAUT_GRADLE_MICRONAUT_GRADLE_PLUGIN),
gavMapEntry("com.google.devtools.ksp", "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin", StarterCoordinates.COM_GOOGLE_DEVTOOLS_KSP_GRADLE_PLUGIN),
gavMapEntry("gg.jte.gradle", "gg.jte:jte-gradle-plugin", StarterCoordinates.JTE_GRADLE_PLUGIN)
gavMapEntry("gg.jte.gradle", "gg.jte:jte-gradle-plugin", StarterCoordinates.JTE_GRADLE_PLUGIN),
gavMapEntry("com.microsoft.azure.azurefunctions", "com.microsoft.azure:azure-functions-gradle-plugin", StarterCoordinates.AZURE_FUNCTIONS_GRADLE_PLUGIN)
);

private static final ThreadLocal<GdkGeneratorContext> INSTANCE = new ThreadLocal<>();
Expand Down Expand Up @@ -896,7 +897,7 @@ public void addTemplate(String name,

RockerModel rockerModel = testRockerModelProvider.findModel(getLanguage(), getTestFramework());
if (rockerModel != null) {
addTemplateInternal(name, new RockerTemplate(moduleName, path, rockerModel));
addTemplateInternal(name + "-" + cloud.getModuleName(), new RockerTemplate(moduleName, path, rockerModel));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public final class GdkTestedFeatures {
"email-javamail",
"email-template",
// K8S
"kubernetes-client",
"kubernetes-client-openapi",
// LOGGING
"logback",
// METRICS
Expand Down Expand Up @@ -100,6 +100,8 @@ public final class GdkTestedFeatures {
// TRACING AWS
"tracing-opentelemetry-exporter-otlp",
"tracing-opentelemetry-xray",
// TRACING Azure
"azure-tracing",
// TRACING GCP
"tracing-opentelemetry-exporter-gcp",
"tracing-opentelemetry-gcp"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@
import io.micronaut.starter.build.maven.MavenPlugin;
import io.micronaut.starter.build.maven.MavenRepository;
import io.micronaut.starter.feature.build.maven.templates.mavenPlugin;
import io.micronaut.starter.feature.function.azure.AbstractAzureFunction;
import io.micronaut.starter.feature.function.azure.template.azureFunctionMavenPlugin;
import io.micronaut.starter.feature.testresources.TestResourcesAdditionalModulesProvider;
import io.micronaut.starter.template.RockerWritable;
import jakarta.inject.Singleton;
Expand All @@ -46,6 +48,8 @@
@Singleton
public class GdkMavenBuildCreator extends MavenBuildCreator {

private static final String AZURE_FUNCTIONS_MAVEN_PLUGIN = "azure-functions-maven-plugin";

@NonNull
@Override
public MavenBuild create(GeneratorContext generatorContext, List<Repository> repositories) {
Expand Down Expand Up @@ -93,6 +97,12 @@ private MavenPlugin clonePlugin(MavenPlugin plugin) {
extensionModel.templateDirectory())), 0);
}

if (AZURE_FUNCTIONS_MAVEN_PLUGIN.equals(plugin.getArtifactId())) {
return new MavenPlugin(
plugin.getArtifactId(),
new RockerWritable(azureFunctionMavenPlugin.template(AbstractAzureFunction.AZURE_FUNCTIONS_EXTENSION_VERSION)), 0);
}

mavenPlugin extensionModel = (mavenPlugin) ((RockerWritable) plugin.getExtension()).getModel();
return new MavenPlugin(
plugin.getArtifactId(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@
*/
package cloud.graal.gdk.feature.create.function;

import cloud.graal.gdk.feature.GdkFeatureContext;
import cloud.graal.gdk.model.GdkCloud;
import io.micronaut.core.annotation.NonNull;
import io.micronaut.starter.feature.function.azure.AzureRawFunction;
import jakarta.inject.Singleton;

import static cloud.graal.gdk.model.GdkCloud.AZURE;
Expand All @@ -29,6 +31,17 @@
@Singleton
public class GdkAzureCloudFunction extends AbstractGdkCloudFunction {

private final AzureRawFunction azureRawFunction;

public GdkAzureCloudFunction(AzureRawFunction azureRawFunction) {
this.azureRawFunction = azureRawFunction;
}

@Override
public void processSelectedFeatures(GdkFeatureContext featureContext) {
featureContext.addFeature(azureRawFunction, AzureRawFunction.class);
}

@NonNull
@Override
public GdkCloud getCloud() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
*
* @since 1.0.0
*/
public abstract class AbstractGdkCloudGatewayFunction extends AbstractGdkCreateFeature implements FunctionFeature {
public abstract class AbstractGdkCloudGatewayFunction
extends AbstractGdkCreateFeature
implements FunctionFeature {

@NonNull
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@
*/
package cloud.graal.gdk.feature.create.gatewayfunction;

import cloud.graal.gdk.feature.GdkFeatureContext;
import cloud.graal.gdk.model.GdkCloud;
import io.micronaut.core.annotation.NonNull;
import io.micronaut.starter.feature.function.azure.AzureRawFunction;
import jakarta.inject.Singleton;

import static cloud.graal.gdk.model.GdkCloud.AZURE;
Expand All @@ -29,6 +31,20 @@
@Singleton
public class GdkAzureCloudGatewayFunction extends AbstractGdkCloudGatewayFunction {

private final AzureRawFunction azureRawFunction;

/**
* @param azureRawFunction AzureRawFunction feature
*/
public GdkAzureCloudGatewayFunction(AzureRawFunction azureRawFunction) {
this.azureRawFunction = azureRawFunction;
}

@Override
public void processSelectedFeatures(GdkFeatureContext featureContext) {
featureContext.addFeature(azureRawFunction, AzureRawFunction.class);
}

@NonNull
@Override
public GdkCloud getCloud() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
* Copyright 2025 Oracle and/or its affiliates
*
* 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
*
* https://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 cloud.graal.gdk.feature.replaced;

import cloud.graal.gdk.GdkGeneratorContext;
import io.micronaut.context.annotation.Replaces;
import io.micronaut.starter.application.generator.GeneratorContext;
import io.micronaut.starter.build.dependencies.CoordinateResolver;
import io.micronaut.starter.feature.function.azure.AzureHttpFunction;
import io.micronaut.starter.feature.function.azure.AzureRawFunction;
import jakarta.inject.Singleton;

@Replaces(AzureRawFunction.class)
@Singleton
public class GdkAzureRawFunction extends AzureRawFunction {
public GdkAzureRawFunction(CoordinateResolver coordinateResolver, AzureHttpFunction httpFunction) {
super(coordinateResolver, httpFunction);
}

@Override
public void apply(GeneratorContext generatorContext) {
super.apply(generatorContext);

GdkGeneratorContext context = (GdkGeneratorContext) generatorContext;
context.addUrlTemplate("azure", "host.json", "host.json", "functions/azure/host.json");
context.addUrlTemplate("azure", "local.settings.json", "local.settings.json", "functions/azure/local.settings.json");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
import io.micronaut.starter.feature.build.gradle.MicronautApplicationGradlePlugin;
import io.micronaut.starter.feature.build.gradle.templates.buildGradle;
import io.micronaut.starter.feature.build.gradle.templates.micronautGradle;
import io.micronaut.starter.feature.function.azure.template.azurefunctions;
import io.micronaut.starter.template.RockerTemplate;
import io.micronaut.starter.template.RockerWritable;
import jakarta.inject.Singleton;
Expand Down Expand Up @@ -88,6 +89,11 @@ public class GdkGradle extends Gradle {
*/
private static final String JTE_PLUGIN_ID = "gg.jte.gradle";

/**
* The plugin id for the AZURE functions plugin.
*/
private static final String AZURE_FUNCTIONS_PLUGIN = "com.microsoft.azure.azurefunctions";

private static final GradlePlugin GROOVY_PLUGIN = GradlePlugin.builder().id("groovy").build();

private final CoordinateResolver coordinateResolver;
Expand Down Expand Up @@ -260,6 +266,8 @@ private void addCloudGradleBuild(GdkGeneratorContext generatorContext, GradleDsl
copiedPlugins.add(cloneMicronautPlugin(plugin, generatorContext));
} else if (JTE_PLUGIN_ID.equals(id)) {
copiedPlugins.add(cloneJtePlugin(plugin));
} else if (AZURE_FUNCTIONS_PLUGIN.equals(id)) {
copiedPlugins.add(cloneAzureFunctionsPlugin(plugin, generatorContext));
} else {
throw new IllegalStateException("Unknown build plugin '" + id + "'");
}
Expand Down Expand Up @@ -290,7 +298,6 @@ private void addCloudGradleBuild(GdkGeneratorContext generatorContext, GradleDsl
}

private GradlePlugin cloneJtePlugin(GradlePlugin plugin) {

gdkGradlePluginJTE extensionModel = (gdkGradlePluginJTE) ((RockerWritable) plugin.getExtension()).getModel();

return new GradlePlugin(
Expand Down Expand Up @@ -344,4 +351,27 @@ private GradlePlugin cloneMicronautPlugin(GradlePlugin plugin,
plugin.getBuildImports(),
plugin.getSettingsImports());
}

private GradlePlugin cloneAzureFunctionsPlugin(GradlePlugin plugin, GeneratorContext generatorContext) {


azurefunctions extensionModel = (azurefunctions) ((RockerWritable) plugin.getExtension()).getModel();

return new GradlePlugin(
plugin.getGradleFile(),
plugin.getId(),
plugin.getVersion(),
null,
new RockerWritable(azurefunctions.template(
generatorContext.getProject(),
extensionModel.dsl(),
generatorContext.getJdkVersion().asString())
),
null,
plugin.getPluginsManagementRepositories(),
false,
plugin.getOrder(),
plugin.getBuildImports(),
plugin.getSettingsImports());
}
}
Loading