Skip to content

Instantly share code, notes, and snippets.

View ljnelson's full-sized avatar
🙃

Laird Nelson ljnelson

🙃
View GitHub Profile
private final void block(@ObservesAsync final BlockingEvent event) throws InterruptedException {
this.latch.await();
}
beanManager.getEvent().select(BlockingEvent.class).fireAsync(new BlockingEvent());
private final void startHttpServers(@Observes @Initialized(ApplicationScoped.class) @Priority(LIBRARY_AFTER) final Object event, final BeanManager beanManager) throws IOException, InterruptedException {
if (beanManager != null) {
final Instance<Object> beans = beanManager.createInstance();
assert beans != null;
final Instance<HttpServer> httpServers = beans.select(HttpServer.class);
assert httpServers != null;
if (!httpServers.isUnsatisfied()) {
synchronized (this.startedHttpServers) {
for (final HttpServer httpServer : httpServers) {
if (httpServer != null) {
private final void startHttpServers(@Observes @Initialized(ApplicationScoped.class) @Priority(LIBRARY_AFTER) final Object event, final BeanManager beanManager) throws IOException, InterruptedException {
if (beanManager != null) {
final Instance<Object> beans = beanManager.createInstance();
assert beans != null;
final Instance<HttpServer> httpServers = beans.select(HttpServer.class);
assert httpServers != null;
if (!httpServers.isUnsatisfied()) {
synchronized (this.startedHttpServers) {
for (final HttpServer httpServer : httpServers) {
if (httpServer != null) {
private final void stopHttpServers(@Observes final BeforeShutdown event) {
synchronized (this.startedHttpServers) {
for (final HttpServer httpServer : this.startedHttpServers) {
if (httpServer != null && httpServer.isStarted()) {
httpServer.shutdownNow();
}
}
}
}
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Profile;
import java.util.List;
import hapi.release.ReleaseOuterClass.Release;
import hapi.services.tiller.ReleaseServiceGrpc;
import hapi.services.tiller.ReleaseServiceGrpc.ReleaseServiceBlockingStub;
import hapi.services.tiller.Tiller.GetHistoryRequest;
import hapi.services.tiller.Tiller.GetHistoryResponse;
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
@ljnelson
ljnelson / part11-1.java
Created February 14, 2018 21:32
Detecting event selector beans
private final <X extends Listable<? extends KubernetesResourceList> & VersionWatchable<? extends Closeable, Watcher<? extends HasMetadata>>> void processProducerMethod(@Observes final ProcessProducerMethod<X, ?> event, final BeanManager beanManager) {
if (event != null) {
// (We'll define this in a second.)
this.processPotentialEventSelectorBean(event.getBean(), beanManager);
}
}
private final <X extends Listable<? extends KubernetesResourceList> & VersionWatchable<? extends Closeable, Watcher<? extends HasMetadata>>> void processProducerField(@Observes final ProcessProducerField<X, ?> event, final BeanManager beanManager) {
if (event != null) {
this.processPotentialEventSelectorBean(event.getBean(), beanManager);
@ljnelson
ljnelson / part11-2.java
Created February 14, 2018 21:36
Finding an Operation Type in a Bean
private static final Type getOperationType(final Bean<?> bean) {
final Type returnValue;
if (bean == null) {
returnValue = null;
} else {
final Set<Type> beanTypes = bean.getTypes();
assert beanTypes != null;
assert !beanTypes.isEmpty();
Type candidate = null;
for (final Type beanType : beanTypes) {
@ljnelson
ljnelson / part11-3.java
Created February 14, 2018 21:37
Process a potential event selector bean.
private final void processPotentialEventSelectorBean(final Bean<?> bean, final BeanManager beanManager) {
if (bean != null) {
final Type operationType = getOperationType(bean);
if (operationType != null) {
final Set kubernetesEventSelectors = Annotations.retainAnnotationsQualifiedWith(bean.getQualifiers(), KubernetesEventSelector.class, beanManager);
if (kubernetesEventSelectors != null && !kubernetesEventSelectors.isEmpty()) {
this.eventSelectorBeans.put(kubernetesEventSelectors, bean);
}
}
}