Skip to content

Commit

Permalink
refactor code
Browse files Browse the repository at this point in the history
  • Loading branch information
jetoile committed Nov 12, 2017
1 parent 6f3e18f commit aedebe2
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
*/
package fr.jetoile.hadoopunit;

import java.util.Arrays;

/**
* List of component which can be bootstrap.
* Warning : this list should be sorted
Expand Down Expand Up @@ -57,5 +59,14 @@ public String getMainClass() {
public String getArtifactKey() {
return artifactKey;
}

public static boolean isComponent(String key) {
return Arrays.stream(values())
.anyMatch(enumValue -> enumValue.key.equalsIgnoreCase(key));
}

public static int getOrdinal(String key) {
return valueOf(key).ordinal();
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
import org.slf4j.LoggerFactory;

import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;

import static java.util.stream.Collectors.toList;
import static org.fusesource.jansi.Ansi.Color.GREEN;
Expand All @@ -40,18 +43,16 @@ public enum HadoopBootstrap {
HadoopBootstrap() {
commands.clear();
commandLoader.reload();
Iterator<Bootstrap> commandsIterator = commandLoader.iterator();

while (commandsIterator.hasNext()) {
Bootstrap command = commandsIterator.next();
commands.put(command.getName(), command);
}
Iterable<Bootstrap> iterable = commandLoader::iterator;
commands = StreamSupport.stream(iterable.spliterator(), false)
.collect(Collectors.toMap(Bootstrap::getName, Function.identity()));

Arrays.asList(Component.values()).stream().forEach(c -> {
if (commands.containsKey(c.name())) {
componentsToStart.add(commands.get(c.name()));
}
});
componentsToStart = commands.entrySet().stream()
.filter(entry -> Component.isComponent(entry.getKey()))
.sorted(Comparator.comparingInt(e -> Component.getOrdinal(e.getKey())))
.map(Map.Entry::getValue)
.collect(toList());

componentsToStop = this.componentsToStart.stream().collect(toList());
Collections.reverse(componentsToStop);
Expand Down Expand Up @@ -98,18 +99,15 @@ public HadoopBootstrap add(Component component) throws NotFoundServiceException
}

private void internalStart(List<Bootstrap> componentsToStart) {
componentsToStart.stream().forEach(c -> {
startService(c);
});
componentsToStart.forEach(this::startService);

HadoopUtils.INSTANCE.printBanner(System.out);
componentsToStart.stream().forEach(c -> HadoopUtils.printColorLine(System.out, GREEN, "\t\t - " + c.getName() + " " + c.getProperties()));
componentsToStart.forEach(c -> HadoopUtils.printColorLine(System.out, GREEN, "\t\t - " + c.getName() + " " + c.getProperties()));
System.out.println();
}

private void internalStop(List<Bootstrap> componentsToStop) {
componentsToStop.stream().forEach(c -> {
stopService(c);
});
componentsToStop.forEach(this::stopService);
}

private void startService(Bootstrap c) {
Expand Down

0 comments on commit aedebe2

Please sign in to comment.