Separating challenges
This commit is contained in:
@ -8,7 +8,6 @@ import org.owasp.webgoat.lessons.NewLesson;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -24,8 +23,8 @@ public class PluginResource {
|
||||
private final URL location;
|
||||
private final List<Class> classes;
|
||||
|
||||
public Optional<Class> getLesson() {
|
||||
return classes.stream().filter(c -> c.getSuperclass() == NewLesson.class).findFirst();
|
||||
public List<Class> getLessons() {
|
||||
return classes.stream().filter(c -> c.getSuperclass() == NewLesson.class).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<Class<Endpoint>> getEndpoints() {
|
||||
|
@ -67,13 +67,18 @@ public class PluginsLoader {
|
||||
List<AbstractLesson> lessons = Lists.newArrayList();
|
||||
for (PluginResource plugin : findPluginResources()) {
|
||||
try {
|
||||
Class lessonClazz = plugin.getLesson()
|
||||
.orElseThrow(() -> new PluginLoadingFailure("Plugin resource does not contain lesson"));
|
||||
NewLesson lesson = (NewLesson) lessonClazz.newInstance();
|
||||
List<Class<AssignmentEndpoint>> assignments = plugin.getAssignments();
|
||||
lesson.setAssignments(createAssignment(assignments));
|
||||
lessons.add(lesson);
|
||||
pluginEndpointPublisher.publish(plugin.getEndpoints());
|
||||
plugin.getLessons().forEach(c -> {
|
||||
NewLesson lesson = null;
|
||||
try {
|
||||
lesson = (NewLesson) c.newInstance();
|
||||
} catch (Exception e) {
|
||||
log.error("Error while loading:" + c, e);
|
||||
}
|
||||
List<Class<AssignmentEndpoint>> assignments = plugin.getAssignments();
|
||||
lesson.setAssignments(createAssignment(assignments));
|
||||
lessons.add(lesson);
|
||||
pluginEndpointPublisher.publish(plugin.getEndpoints());
|
||||
});
|
||||
} catch (Exception e) {
|
||||
log.error("Error in loadLessons: ", e);
|
||||
}
|
||||
|
Reference in New Issue
Block a user