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);
}
}
}
}
}