All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.quarkus.test.util.DefaultQuarkusCLIAppManager Maven / Gradle / Ivy

package io.quarkus.test.util;

import static io.quarkus.test.bootstrap.QuarkusCliClient.CreateApplicationRequest.defaults;
import static io.quarkus.test.bootstrap.QuarkusCliClient.UpdateApplicationRequest.defaultUpdate;

import java.util.Arrays;

import org.apache.maven.artifact.versioning.DefaultArtifactVersion;

import io.quarkus.test.bootstrap.QuarkusCliClient;
import io.quarkus.test.bootstrap.QuarkusCliRestService;
import io.quarkus.test.logging.Log;
import io.quarkus.test.services.quarkus.CliDevModeVersionLessQuarkusApplicationManagedResource;

public class DefaultQuarkusCLIAppManager implements IQuarkusCLIAppManager {
    private final QuarkusCliClient cliClient;
    private final DefaultArtifactVersion oldVersion;
    private final DefaultArtifactVersion newVersion;

    public DefaultQuarkusCLIAppManager(QuarkusCliClient cliClient,
            DefaultArtifactVersion oldVersion, DefaultArtifactVersion newVersion) {
        this.cliClient = cliClient;
        this.oldVersion = oldVersion;
        this.newVersion = newVersion;
    }

    @Override
    public void updateApp(QuarkusCliRestService app) {
        Log.info("Updating app to version stream: " + newVersion);
        app.update(defaultUpdate().withStream(newVersion.toString()));
    }

    @Override
    public QuarkusCliRestService createApplication() {
        Log.info("Creating app with version stream: " + oldVersion);
        return cliClient.createApplication("app", defaults()
                .withPlatformBom(null)
                .withStream(oldVersion.toString())
                // overwrite managedResource to use quarkus version defined in pom.xml and not overwrite it in CLI command
                .withManagedResourceCreator((serviceContext,
                        quarkusCliClient) -> managedResBuilder -> new CliDevModeVersionLessQuarkusApplicationManagedResource(
                                serviceContext, quarkusCliClient)));
    }

    @Override
    public QuarkusCliRestService createApplicationWithExtensions(String... extensions) {
        Log.info("Creating app with version stream: " + oldVersion + " and extensions " + Arrays.toString(extensions));
        return cliClient.createApplication("app", defaults()
                .withPlatformBom(null)
                .withExtensions(extensions)
                .withStream(oldVersion.toString())
                // overwrite managedResource to use quarkus version defined in pom.xml and not overwrite it in CLI command
                .withManagedResourceCreator((serviceContext,
                        quarkusCliClient) -> managedResBuilder -> new CliDevModeVersionLessQuarkusApplicationManagedResource(
                                serviceContext, quarkusCliClient)));
    }

    @Override
    public QuarkusCliRestService createApplicationWithExtraArgs(String... extraArgs) {
        Log.info("Creating app with version stream: " + oldVersion + " and extraArgs " + Arrays.toString(extraArgs));
        return cliClient.createApplication("app", defaults()
                .withPlatformBom(null)
                .withExtraArgs(extraArgs)
                .withStream(oldVersion.toString())
                // overwrite managedResource to use quarkus version defined in pom.xml and not overwrite it in CLI command
                .withManagedResourceCreator((serviceContext,
                        quarkusCliClient) -> managedResBuilder -> new CliDevModeVersionLessQuarkusApplicationManagedResource(
                                serviceContext, quarkusCliClient)));
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy