use of io.fabric8.maven.core.config.PlatformMode in project fabric8-maven-plugin by fabric8io.
the class Fabric8ServiceHub method init.
private void init() {
Objects.requireNonNull(clusterAccess, "clusterAccess");
Objects.requireNonNull(log, "log");
this.resolvedMode = clusterAccess.resolvePlatformMode(platformMode, log);
if (resolvedMode != PlatformMode.kubernetes && resolvedMode != PlatformMode.openshift) {
throw new IllegalArgumentException("Unknown platform mode " + platformMode + " resolved as " + resolvedMode);
}
this.client = clusterAccess.createDefaultClient(log);
if (this.controller == null) {
this.controller = new Controller(this.client);
this.controller.setThrowExceptionOnError(true);
}
// Lazily building services
this.services.putIfAbsent(ClientToolsService.class, new LazyBuilder<ClientToolsService>() {
@Override
protected ClientToolsService build() {
return new ClientToolsService(controller, log);
}
});
this.services.putIfAbsent(PortForwardService.class, new LazyBuilder<PortForwardService>() {
@Override
protected PortForwardService build() {
return new PortForwardService(getClientToolsService(), log, client);
}
});
this.services.putIfAbsent(BuildService.class, new LazyBuilder<BuildService>() {
@Override
protected BuildService build() {
BuildService buildService;
// Creating platform-dependent services
if (resolvedMode == PlatformMode.openshift) {
// Openshift services
buildService = new OpenshiftBuildService((OpenShiftClient) client, log, dockerServiceHub, buildServiceConfig);
} else {
// Kubernetes services
buildService = new DockerBuildService(dockerServiceHub, buildServiceConfig);
}
return buildService;
}
});
this.services.putIfAbsent(ArtifactResolverService.class, new LazyBuilder<ArtifactResolverService>() {
@Override
protected ArtifactResolverService build() {
return new ArtifactResolverServiceMavenImpl(repositorySystem, mavenProject);
}
});
}
use of io.fabric8.maven.core.config.PlatformMode in project fabric8-maven-plugin by fabric8io.
the class Fabric8ServiceHubTest method testObtainBuildService.
@Test
public void testObtainBuildService() {
Fabric8ServiceHub hub = new Fabric8ServiceHub.Builder().clusterAccess(clusterAccess).log(logger).platformMode(PlatformMode.kubernetes).dockerServiceHub(dockerServiceHub).buildServiceConfig(buildServiceConfig).build();
BuildService buildService = hub.getBuildService();
assertNotNull(buildService);
assertTrue(buildService instanceof DockerBuildService);
}
use of io.fabric8.maven.core.config.PlatformMode in project fabric8-maven-plugin by fabric8io.
the class Fabric8ServiceHubTest method testObtainOpenshiftBuildService.
@Test
public void testObtainOpenshiftBuildService() {
Fabric8ServiceHub hub = new Fabric8ServiceHub.Builder().clusterAccess(clusterAccess).log(logger).platformMode(PlatformMode.openshift).dockerServiceHub(dockerServiceHub).buildServiceConfig(buildServiceConfig).build();
BuildService buildService = hub.getBuildService();
assertNotNull(buildService);
assertTrue(buildService instanceof OpenshiftBuildService);
}
use of io.fabric8.maven.core.config.PlatformMode in project fabric8-maven-plugin by fabric8io.
the class DockerImageWatcher method watch.
@Override
public void watch(List<ImageConfiguration> configs, final Set<HasMetadata> resources, PlatformMode mode) {
BuildService.BuildContext buildContext = getContext().getBuildContext();
WatchService.WatchContext watchContext = getContext().getWatchContext();
// add a image customizer
watchContext = new WatchService.WatchContext.Builder(watchContext).imageCustomizer(new Task<ImageConfiguration>() {
@Override
public void execute(ImageConfiguration imageConfiguration) throws DockerAccessException, MojoExecutionException, MojoFailureException {
buildImage(imageConfiguration);
}
}).containerRestarter(new Task<WatchService.ImageWatcher>() {
@Override
public void execute(WatchService.ImageWatcher imageWatcher) throws DockerAccessException, MojoExecutionException, MojoFailureException {
restartContainer(imageWatcher, resources);
}
}).build();
ServiceHub hub = getContext().getServiceHub();
try {
hub.getWatchService().watch(watchContext, buildContext, configs);
} catch (Exception ex) {
throw new RuntimeException("Error while watching", ex);
}
}
Aggregations