public BaseGenerator(GeneratorContext context, String name, FromSelector fromSelector) { this.context = context; this.name = name; this.fromSelector = fromSelector; this.config = new GeneratorConfig(context.getProject().getProperties(), getName(), context.getConfig()); this.log = new PrefixedLogger(name, context.getLogger()); }
public String getFrom() { PlatformMode mode = context.getPlatformMode(); OpenShiftBuildStrategy strategy = context.getStrategy(); if (mode == PlatformMode.openshift && strategy == OpenShiftBuildStrategy.s2i) { return getS2iBuildFrom(); } else { return getDockerBuildFrom(); } }
null; try { pluginFactory = genCtx.isUseProjectClasspath() ? new PluginServiceFactory<GeneratorContext>(genCtx, ClassUtil.createProjectClassLoader(genCtx.getProject().getCompileClasspathElements(), genCtx.getLogger())) : new PluginServiceFactory<GeneratorContext>(genCtx); } catch (DependencyResolutionRequiredException e) { "META-INF/fabric8/generator", "META-INF/fabric8-generator"); ProcessorConfig config = genCtx.getConfig(); Logger log = genCtx.getLogger(); List<Generator> usableGenerators = config.prepareProcessors(generators, "generator"); log.verbose("Generators:");
protected MavenProject getProject() { return context.getProject(); }
protected JavaExecGenerator(GeneratorContext context, String name) { super(context, name, new FromSelector.Default(context, "java")); fatJarDetector = new FatJarDetector(getProject().getBuild().getDirectory()); mainClassDetector = new MainClassDetector(getConfig(Config.mainClass), new File(getProject().getBuild().getOutputDirectory()), context.getLogger()); }
String fromMode = getConfigWithSystemFallbackAndDefault(Config.fromMode, "fabric8.generator.fromMode", getFromModeDefault(context.getPlatformMode())); String from = getConfigWithSystemFallbackAndDefault(Config.from, "fabric8.generator.from", null); if ("docker".equalsIgnoreCase(fromMode)) {
@Override protected Map<String, String> getEnv(boolean prePackagePhase) throws MojoExecutionException { Map<String, String> res = super.getEnv(prePackagePhase); if (getContext().getGeneratorMode() == GeneratorMode.WATCH) { // adding dev tools token to env variables to prevent override during recompile String secret = SpringBootUtil.getSpringBootApplicationProperties(MavenUtil.getCompileClassLoader(getProject())).getProperty(SpringBootConfigurationHelper.DEV_TOOLS_REMOTE_SECRET); if (secret != null) { res.put(SpringBootConfigurationHelper.DEV_TOOLS_REMOTE_SECRET_ENV, secret); } } return res; }
private File getSpringBootDevToolsJar() throws IOException { String version = SpringBootUtil.getSpringBootDevToolsVersion(getProject()).orElseThrow(() -> new IllegalStateException("Unable to find the spring-boot version")); return getContext().getArtifactResolver().resolveArtifact(SpringBootConfigurationHelper.SPRING_BOOT_GROUP_ID, SpringBootConfigurationHelper.SPRING_BOOT_DEVTOOLS_ARTIFACT_ID, version, "jar"); }
public boolean isRedHat() { MavenProject project = context.getProject(); Plugin plugin = project.getPlugin("io.fabric8:fabric8-maven-plugin"); if (plugin == null) { // This plugin might be repackaged. plugin = project.getPlugin("org.jboss.redhat-fuse:fabric8-maven-plugin"); } if (plugin == null) { // Can happen if not configured in a build section but only in a dependency management section return false; } String version = plugin.getVersion(); return REDHAT_VERSION_PATTERN.matcher(version).matches(); }
protected JavaExecGenerator(GeneratorContext context, String name) { super(context, name, new FromSelector.Default(context, "java")); fatJarDetector = new FatJarDetector(getProject().getBuild().getDirectory()); mainClassDetector = new MainClassDetector(getConfig(Config.mainClass), new File(getProject().getBuild().getOutputDirectory()), context.getLogger()); }
@Override public List<ImageConfiguration> customize(List<ImageConfiguration> configs, boolean isPrePackagePhase) throws MojoExecutionException { if (getContext().getGeneratorMode() == GeneratorMode.WATCH) { ensureSpringDevToolSecretToken(); if (!isPrePackagePhase ) { addDevToolsFilesToFatJar(configs); } } return super.customize(configs, isPrePackagePhase); }
@Override public List<ImageConfiguration> customize(List<ImageConfiguration> configs, boolean prePackagePhase) { if (getContext().getPlatformMode() == PlatformMode.openshift && getContext().getStrategy() == OpenShiftBuildStrategy.s2i && !prePackagePhase) { throw new IllegalArgumentException("S2I not yet supported for the webapp-generator. Use -Dfabric8.mode=kubernetes or " + "-Dfabric8.build.strategy=docker for OpenShift mode. Please refer to the reference manual at " + "https://maven.fabric8.io for details about build modes."); } // Late initialization to avoid unnecessary directory scanning AppServerHandler handler = getAppServerHandler(getContext()); log.info("Using %s as base image for webapp",handler.getFrom()); ImageConfiguration.Builder imageBuilder = new ImageConfiguration.Builder(); BuildImageConfiguration.Builder buildBuilder = new BuildImageConfiguration.Builder() .from(getFrom(handler)) .ports(handler.exposedPorts()) .cmd(new Arguments(getDockerRunCommand(handler))) .env(getEnv(handler)); if (!prePackagePhase) { buildBuilder.assembly(createAssembly(handler)); } addLatestTagIfSnapshot(buildBuilder); imageBuilder .name(getImageName()) .alias(getAlias()) .buildConfig(buildBuilder.build()); configs.add(imageBuilder.build()); return configs; }
private AppServerHandler getAppServerHandler(GeneratorContext context) { String from = super.getFromAsConfigured(); if (from != null) { // If a base image is provided use this exclusively and dont do a custom lookup return createCustomAppServerHandler(from); } else { return new AppServerDetector(context.getProject()).detect(getConfig(Config.server)); } }