protected void browseKar()

in deployer/service/src/main/java/org/apache/karaf/cave/deployer/service/DeployerServiceImpl.java [184:219]


    protected void browseKar(File entry, String basePath, String repositoryUrl, List<String> featuresRepositories) {
        if (entry.isDirectory()) {
            File[] files = entry.listFiles();
            for (File file : files) {
                if (file.isDirectory()) {
                    browseKar(file, basePath, repositoryUrl, featuresRepositories);
                } else {
                    String path = file.getParentFile().getParentFile().getParentFile().getPath();
                    if (path.startsWith(basePath)) {
                        path = path.substring(basePath.length() + 1);
                    }
                    path = path.replace('/', '.');
                    String groupId = path;
                    String artifactId = file.getParentFile().getParentFile().getName();
                    String version = file.getParentFile().getName();
                    String extension = file.getName().substring(file.getName().lastIndexOf('.') + 1);
                    String classifier = null;
                    if (file.getName().lastIndexOf("-") != -1) {
                        classifier = file.getName().substring(file.getName().lastIndexOf("-") + 1, file.getName().lastIndexOf("."));
                    }
                    if (isFeaturesRepository(file)) {
                        if (classifier == null) {
                            featuresRepositories.add("mvn:" + groupId + "/" + artifactId + "/" + version + "/" + extension);
                        } else {
                            featuresRepositories.add("mvn:" + groupId + "/" + artifactId + "/" + version + "/" + extension + "/" + classifier);
                        }
                    }
                    try {
                        uploadArtifact(groupId, artifactId, version, extension, classifier, file, repositoryUrl);
                    } catch (Exception e) {
                        LOGGER.warn("Can't upload artifact {}/{}/{}/{}", new String[]{groupId, artifactId, version, extension}, e);
                    }
                }
            }
        }
    }