Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/feat/30' into feat/30
Browse files Browse the repository at this point in the history
  • Loading branch information
hlafaille committed Aug 12, 2024
2 parents 80291f5 + 15c8ecb commit 229e08a
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 36 deletions.
5 changes: 0 additions & 5 deletions src/main/java/io/kerosenelabs/atc/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@
import java.io.IOException;
import java.net.URL;
import java.nio.file.Path;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;

import com.google.common.base.Charsets;
import com.google.common.io.Resources;

import io.kerosenelabs.atc.configuration.ConfigurationHandler;
import io.kerosenelabs.atc.configuration.model.Configuration;
import io.kerosenelabs.atc.constant.AnsiCodes;
import io.kerosenelabs.atc.server.CentralRequestHandler;
import io.kerosenelabs.kindling.KindlingServer;
Expand Down Expand Up @@ -58,9 +56,6 @@ public static void main(String[] args) throws KindlingException, IOException {
ConfigurationHandler configurationHandler = ConfigurationHandler.getInstance();
log.info("Configuration parsed, found {} service(s)", configurationHandler.getConfiguration().getServices().size());

// build our consumes list
List<Configuration.Service.ConsumingEndpoint> allConsumes = configurationHandler.getAllConsumes();

// setup kindling
log.info("Beginning Kindling initialization");
KindlingServer server = KindlingServer.getInstance();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package io.kerosenelabs.atc.configuration;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
Expand All @@ -25,19 +23,8 @@ public static ConfigurationHandler getInstance() throws FileNotFoundException, I
return instance;
}

/**
* Get all services {@code consumes} blocks.
* @return A list of {@link Configuration.Service.ConsumingEndpoint}.
*/
public List<Configuration.Service.ConsumingEndpoint> getAllConsumes() {
List<Configuration.Service.ConsumingEndpoint> consumes = new ArrayList<>();
for (Configuration.Service service : configuration.getServices()) {
consumes.addAll(service.getConsumes());
}
return consumes;
}

public Configuration getConfiguration() {
public Configuration getConfigurationModel() {
return configuration;
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.kerosenelabs.atc.configuration.model;

import java.util.HashMap;
import java.util.List;

import io.kerosenelabs.kindling.constant.HttpMethod;
Expand All @@ -11,7 +12,7 @@
@NoArgsConstructor
@ToString
public class Configuration {
private List<Service> services;
private HashMap<String, Service> services;
private Api api;

@Data
Expand All @@ -20,21 +21,19 @@ public class Configuration {
@NoArgsConstructor
@ToString
public static class Service {
private String name;
private String description;
private String maintainer;
private String identityToken;
private List<String> hosts;
private List<ProvidingEndpoint> provides;
private List<ConsumingEndpoint> consumes;
private HashMap<String, ProvidedEndpoint> provides; // key is route
private HashMap<String, ConsumedService> consumes; // key is service name

@Data
@AllArgsConstructor
@Builder
@NoArgsConstructor
@ToString
public static class ProvidingEndpoint {
private String endpoint;
public static class ProvidedEndpoint {
private List<HttpMethod> methods;
}

Expand All @@ -43,10 +42,18 @@ public static class ProvidingEndpoint {
@Builder
@NoArgsConstructor
@ToString
public static class ConsumingEndpoint {
private String service;
private String endpoint;
public static class ConsumedService {
private HashMap<String, ConsumedServiceEndpoint> endpoints; // key is route
}

@Data
@AllArgsConstructor
@Builder
@NoArgsConstructor
@ToString
public static class ConsumedServiceEndpoint {
private List<HttpMethod> methods;
}

}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package io.kerosenelabs.atc.server;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.kerosenelabs.atc.configuration.ConfigurationHandler;
import io.kerosenelabs.atc.configuration.model.Configuration;
Expand All @@ -21,13 +20,12 @@
@Slf4j
public class CentralRequestHandler extends RequestHandler {
private final ConfigurationHandler configurationHandler;
private final List<Configuration.Service> services;
private final HashMap<String, Configuration.Service> services;
private final ObjectMapper objectMapper = new ObjectMapper();

public CentralRequestHandler() throws IOException {
configurationHandler = ConfigurationHandler.getInstance();
services = configurationHandler.getConfiguration().getServices();
;
services = configurationHandler.getConfigurationModel().getServices();
log.info("Central request handler initialized");
}

Expand Down Expand Up @@ -56,10 +54,10 @@ public HttpResponse handle(HttpRequest httpRequest) throws KindlingException {
throw new KindlingException("Host header is missing");
}

// iterate over services, ensure requestingService consumes a provided endpoint
Configuration.Service.ConsumingEndpoint consumedEndpoint = null;
// iterate over consumed ensure requestingService consumes a provided endpoint
Configuration.Service.ConsumedService consumedService = null;
for (Configuration.Service service : services) {
for (Configuration.Service.ConsumingEndpoint consumes : service.getConsumes()) {
for (Configuration.Service.ConsumedEndpoint consumes : service.getConsumes()) {
if (consumes.getEndpoint().equals(httpRequest.getResource()) && consumes.getMethods().contains(httpRequest.getHttpMethod())) {
consumedEndpoint = consumes;
break;
Expand Down

0 comments on commit 229e08a

Please sign in to comment.