use of io.fabric8.kubernetes.model.annotation.Group in project fabric8 by jboss-fuse.
the class FabricMQGateway method createListener.
protected GatewayServiceTreeCache createListener() {
String zkPath = getZooKeeperPath();
// TODO we should discover the broker group configuration here using the same
// mq-create / mq-client profiles so that we only listen to a subset of the available brokers here?
ServiceMap serviceMap = new ServiceMap();
VertxService vertxService = getVertxService();
Vertx vertx = vertxService.getVertx();
CuratorFramework curator = getCurator();
LoadBalancer pathLoadBalancer = LoadBalancers.createLoadBalancer(loadBalancerType, stickyLoadBalancerCacheSize);
LoadBalancer serviceLoadBalancer = LoadBalancers.createLoadBalancer(loadBalancerType, stickyLoadBalancerCacheSize);
LOG.info("activating MQ mapping ZooKeeper path: " + zkPath + " host: " + host + " with load balancer: " + pathLoadBalancer);
List<TcpGateway> gateways = new ArrayList<TcpGateway>();
addGateway(gateways, vertx, serviceMap, "tcp", isOpenWireEnabled(), getOpenWirePort(), pathLoadBalancer, serviceLoadBalancer);
addGateway(gateways, vertx, serviceMap, "stomp", isStompEnabled(), getStompPort(), pathLoadBalancer, serviceLoadBalancer);
addGateway(gateways, vertx, serviceMap, "amqp", isAmqpEnabled(), getAmqpPort(), pathLoadBalancer, serviceLoadBalancer);
addGateway(gateways, vertx, serviceMap, "mqtt", isMqttEnabled(), getMqttPort(), pathLoadBalancer, serviceLoadBalancer);
addGateway(gateways, vertx, serviceMap, "ws", isWebsocketEnabled(), getWebsocketPort(), pathLoadBalancer, serviceLoadBalancer);
if (gateways.isEmpty()) {
return null;
}
return new GatewayServiceTreeCache(curator, zkPath, serviceMap, gateways);
}
use of io.fabric8.kubernetes.model.annotation.Group in project fabric8 by jboss-fuse.
the class GatewayServiceTreeCache method init.
public void init() throws Exception {
if (active.compareAndSet(false, true)) {
treeCache = new TreeCacheExtended(curator, zkPath, true, false, true, treeCacheExecutor);
treeCache.start(TreeCacheExtended.StartMode.NORMAL);
treeCache.getListenable().addListener(treeListener);
LOG.info("Started a group listener for " + zkPath);
for (TcpGateway gateway : gateways) {
gateway.init();
}
}
}
use of io.fabric8.kubernetes.model.annotation.Group in project fabric8 by jboss-fuse.
the class FabricDiscoveryAgent method initGroup.
private synchronized void initGroup() throws Exception {
group = (MultiGroup) factory.createMultiGroup("/fabric/registry/clusters/amq/" + groupName, ActiveMQNode.class, new NamedThreadFactory("zkgroup-fabric-mq-discovery"));
group.add(new GroupListener<ActiveMQNode>() {
@Override
public void groupEvent(Group<ActiveMQNode> group, GroupEvent event) {
LOG.debug("Event: " + event);
Map<String, ActiveMQNode> masters = new HashMap<String, ActiveMQNode>();
for (ActiveMQNode node : group.members().values()) {
if (!masters.containsKey(node.id)) {
masters.put(node.id, node);
}
}
update(masters.values());
}
});
}
use of io.fabric8.kubernetes.model.annotation.Group in project fabric8-maven-plugin by fabric8io.
the class MavenProjectEnricherTest method testGeneratedResources.
@Test
public void testGeneratedResources() {
ProjectLabelEnricher projectEnricher = new ProjectLabelEnricher(context);
KubernetesListBuilder builder = createListWithDeploymentConfig();
projectEnricher.enrich(PlatformMode.kubernetes, builder);
KubernetesList list = builder.build();
Map<String, String> labels = list.getItems().get(0).getMetadata().getLabels();
assertNotNull(labels);
assertEquals("groupId", labels.get("group"));
assertEquals("artifactId", labels.get("app"));
assertEquals("version", labels.get("version"));
assertNull(labels.get("project"));
builder = new KubernetesListBuilder().withItems(new DeploymentBuilder().build());
projectEnricher.create(PlatformMode.kubernetes, builder);
Deployment deployment = (Deployment) builder.buildFirstItem();
Map<String, String> selectors = deployment.getSpec().getSelector().getMatchLabels();
assertEquals("groupId", selectors.get("group"));
assertEquals("artifactId", selectors.get("app"));
assertNull(selectors.get("version"));
assertNull(selectors.get("project"));
}
use of io.fabric8.kubernetes.model.annotation.Group in project fabric8-maven-plugin by fabric8io.
the class MavenProjectEnricherTest method testOldStyleGeneratedResources.
@Test
public void testOldStyleGeneratedResources() {
final Properties properties = new Properties();
properties.setProperty("fabric8.enricher.fmp-project-label.useProjectLabel", "true");
new Expectations() {
{
context.getConfiguration();
result = new Configuration.Builder().properties(properties).build();
}
};
ProjectLabelEnricher projectEnricher = new ProjectLabelEnricher(context);
KubernetesListBuilder builder = createListWithDeploymentConfig();
projectEnricher.enrich(PlatformMode.kubernetes, builder);
KubernetesList list = builder.build();
Map<String, String> labels = list.getItems().get(0).getMetadata().getLabels();
assertNotNull(labels);
assertEquals("groupId", labels.get("group"));
assertEquals("artifactId", labels.get("project"));
assertEquals("version", labels.get("version"));
assertNull(labels.get("app"));
builder = new KubernetesListBuilder().withItems(new DeploymentConfigBuilder().build());
projectEnricher.create(PlatformMode.kubernetes, builder);
DeploymentConfig deploymentConfig = (DeploymentConfig) builder.buildFirstItem();
Map<String, String> selectors = deploymentConfig.getSpec().getSelector();
assertEquals("groupId", selectors.get("group"));
assertEquals("artifactId", selectors.get("project"));
assertNull(selectors.get("version"));
assertNull(selectors.get("app"));
}
Aggregations