private InputStream buildTestBundle()

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