/** * We look for file system requirements in the root directory path (by default, 'stories'). * First, we look on the classpath. If we don't find anything on the classpath (e.g. if the task is * being run from the Maven plugin), we look in the src/main/resources and src/test/resources directories starting * at the working directory. */ public List<Requirement> getRequirements() { if (requirements == null) { try { Set<Requirement> allRequirements = Sets.newHashSet(); Set<String> directoryPaths = getRootDirectoryPaths(); for (String rootDirectoryPath : directoryPaths) { File rootDirectory = new File(rootDirectoryPath); if (rootDirectory.exists()) { allRequirements.addAll(loadCapabilitiesFrom(rootDirectory.listFiles(thatAreDirectories()))); allRequirements.addAll(loadStoriesFrom(rootDirectory.listFiles(thatAreStories()))); } } requirements = Lists.newArrayList(allRequirements); Collections.sort(requirements); } catch (IOException e) { requirements = NO_REQUIREMENTS; throw new IllegalArgumentException("Could not load requirements from '" + rootDirectoryPath + "'", e); } if (level == 0) { requirements = addParentsTo(requirements); } } return requirements; }
/** * We look for file system requirements in the root directory path (by default, 'stories'). * First, we look on the classpath. If we don't find anything on the classpath (e.g. if the task is * being run from the Maven plugin), we look in the src/main/resources and src/test/resources directories starting * at the working directory. */ public List<Requirement> getRequirements() { if (requirements == null) { synchronized (requirementsLock) { if (requirements == null) { Set<Requirement> allRequirements = new HashSet<>(); Set<String> directoryPaths = getRootDirectoryPaths(); for (String path : directoryPaths) { File rootDirectory = new File(path); if (rootDirectory.exists()) { List<Requirement> capabilities = loadCapabilitiesFrom(rootDirectory.listFiles(thatAreFeatureDirectories())); List<Requirement> leafRequirements = loadStoriesFrom(rootDirectory.listFiles(thatAreStories())); allRequirements.addAll(capabilities); allRequirements.addAll(leafRequirements); } } requirements = new ArrayList<>(allRequirements); sort(requirements); requirements = addParentsTo(requirements); } } } return Collections.unmodifiableList(requirements); }
List<Requirement> allRequirements = Lists.newArrayList(); allRequirements.addAll(loadCapabilitiesFrom(rootDirectory.listFiles(thatAreDirectories()))); allRequirements.addAll(loadStoriesFrom(rootDirectory.listFiles(thatAreStories()))); Collections.sort(allRequirements); requirements = allRequirements;