in src/main/java/org/apache/sling/feature/scanner/impl/ContentPackagesExtensionScanner.java [51:92]
public ContainerDescriptor scan(final Feature feature,
final Extension extension,
final ArtifactProvider provider)
throws IOException {
if (!Extension.EXTENSION_NAME_CONTENT_PACKAGES.equals(extension.getName())) {
return null;
}
if ( extension.getType() != ExtensionType.ARTIFACTS ) {
return null;
}
final ContentPackageScanner scanner = new ContentPackageScanner();
final ContainerDescriptor cd = new ContainerDescriptor(feature.getId().toMvnId() + "(" + getId() + ")") {};
for(final Artifact a : extension.getArtifacts()) {
URL url = null;
try {
url = provider.provide(a.getId());
} catch (Exception ex) {
logger.debug("Unable to get artifact file for: " + a.getId(), ex);
}
if (url != null) {
final Set<ContentPackageDescriptorImpl> pcks = scanner.scan(a, url);
for (final ContentPackageDescriptorImpl desc : pcks) {
cd.getArtifactDescriptors().add(desc);
cd.getBundleDescriptors().addAll(desc.getBundles());
}
}
else {
final int lastDot = a.getId().toMvnPath().lastIndexOf(".");
ContentPackageDescriptorImpl desc = new ContentPackageDescriptorImpl(a.getId().toMvnPath().substring(a.getId().toMvnPath().lastIndexOf("/") + 1, lastDot),
a, url, null, null, null, null, new Properties());
desc.lock();
cd.getArtifactDescriptors().add(desc);
}
}
cd.lock();
return cd;
}