private void loadStages()

in src/com/epam/digital/data/platform/pipelines/stages/StageFactory.groovy [80:99]


    private void loadStages() {
        String stagesRelativePath = "com/epam/digital/data/platform/pipelines/stages/impl"
        ArrayList<Class> classesList = []
        Enumeration<URL> res = Thread.currentThread()
                .getContextClassLoader()
                .getResources(stagesRelativePath)

        File dir = new File(res.nextElement().getFile())
        dir.eachDirRecurse() { directory ->
            directory.eachFile(FileType.FILES) { file ->
                classesList.push(Class.forName("${stagesRelativePath.replaceAll('/', '.')}." +
                        "${directory.path.replace("${dir.path}/", "").replaceAll('/', '.')}." +
                        "${file.name.replace(".groovy", "")}"))
            }
        }

        classesList.each {
            add(it)
        }
    }