in src/main/java/org/apache/sling/testing/teleporter/client/ClientSideTeleporter.java [79:119]
private InputStream buildTestBundle(Class<?> c, Collection<Class<?>> embeddedClasses, String bundleSymbolicName) throws IOException {
final TinyBundle b = TinyBundles.bundle()
.setHeader("Bundle-SymbolicName", bundleSymbolicName)
.setHeader("Sling-Test-Regexp", c.getName() + ".*")
.setHeader("Sling-Test-WaitForService-Timeout", Integer.toString(waitForServiceTimout))
.addClass(c);
for(Map.Entry<String, String> header : additionalBundleHeaders.entrySet()) {
log.info("Add bundle header '{}' with value '{}'", header.getKey(), header.getValue());
b.setHeader(header.getKey(), header.getValue());
}
// enrich embedded classes by automatically detected dependencies
for(Class<?> clz : dependencyAnalyzer.getDependencies(log)) {
log.debug("Embed dependent class '{}' because it is referenced and in the allowed package prefixes", clz);
b.addClass(clz);
}
// Embed specified classes
for(Class<?> clz : embeddedClasses) {
log.info("Embed class '{}'", clz);
b.addClass(clz);
}
// Embed specified resources
if(!embeddedResourcePaths.isEmpty()) {
for(String path : embeddedResourcePaths) {
final ClassResourceVisitor.Processor p = new ClassResourceVisitor.Processor() {
@Override
public void process(String resourcePath, InputStream resourceStream) throws IOException {
b.addResource(resourcePath, resourceStream);
log.info("Embed resource '{}'", resourcePath);
}
};
new ClassResourceVisitor(getClass(), path).visit(p);
}
}
return b.build(TinyBundles.bndBuilder());
}