public BundleDescriptor scan()

in src/main/java/org/apache/sling/feature/scanner/Scanner.java [262:287]


    public BundleDescriptor scan(final ArtifactId framework, final Map<String,String> props) throws IOException {
        final StringBuilder sb = new StringBuilder();
        sb.append(framework.toMvnId());
        if (props != null) {
            final Map<String, String> sortedMap = new TreeMap<String, String>(props);
            for (final Map.Entry<String, String> entry : sortedMap.entrySet()) {
                sb.append(":").append(entry.getKey()).append("=").append(entry.getValue());
            }
        }
        final String key = sb.toString();
        BundleDescriptor desc = (BundleDescriptor) this.cache.get(key);
        if (desc == null) {
            for (final FrameworkScanner scanner : this.frameworkScanners) {
                desc = scanner.scan(framework, props, artifactProvider);
                if (desc != null) {
                    break;
                }
            }
            if (desc == null) {
                throw new IOException("No scanner found for framework " + framework.toMvnId());
            }
            this.cache.put(key, desc);
        }

        return desc;
    }