in src/main/java/org/apache/sling/feature/maven/mojos/ApisJarMojo.java [1185:1237]
private void computeWrappedBundles(
final ApisJarContext ctx,
final ArtifactInfo info,
final String[] embeddedBundles,
final boolean skipBinDeflate,
final boolean skipSourceDeflate)
throws MojoExecutionException {
for (final String jarName : embeddedBundles) {
if (".".equals(jarName)) {
continue;
}
final File wrappedJar = new File(info.getBinDirectory(), jarName);
getLog().debug("Processing wrapped bundle " + wrappedJar);
final Properties properties = new Properties();
try (final JarInputStream jis = new JarInputStream(new FileInputStream(wrappedJar))) {
JarEntry jarEntry = null;
while ((jarEntry = jis.getNextJarEntry()) != null) {
if (!jarEntry.isDirectory()
&& pomPropertiesPattern.matcher(jarEntry.getName()).matches()) {
getLog().debug("Loading Maven GAV from " + wrappedJar + '!' + jarEntry.getName());
properties.load(jis);
break;
}
jis.closeEntry();
}
} catch (IOException e) {
throw new MojoExecutionException("An error occurred while processing wrapped bundle " + wrappedJar, e);
}
if (properties.isEmpty()) {
getLog().warn("No Maven GAV info attached to wrapped bundle " + wrappedJar + ", it will be ignored");
} else {
getLog().debug("Handling synthetic artifacts from Maven GAV: " + properties);
String groupId = properties.getProperty("groupId");
String artifactId = properties.getProperty("artifactId");
String version = properties.getProperty("version");
String classifier = properties.getProperty("classifier");
if (classifier == null) {
classifier = inferClassifier(jarName, artifactId, version);
}
Artifact syntheticArtifact =
new Artifact(new ArtifactId(groupId, artifactId, version, classifier, null));
final File bundleFile = getArtifactFile(syntheticArtifact.getId());
processBinary(ctx, info, bundleFile, syntheticArtifact, null, skipBinDeflate, skipSourceDeflate);
}
}
}