Example usage for org.hibernate.boot.archive.spi ArchiveDescriptor visitArchive

List of usage examples for org.hibernate.boot.archive.spi ArchiveDescriptor visitArchive

Introduction

In this page you can find the example usage for org.hibernate.boot.archive.spi ArchiveDescriptor visitArchive.

Prototype

public void visitArchive(ArchiveContext archiveContext);

Source Link

Document

Perform visitation using the given context

Usage

From source file:de.micromata.genome.jpa.impl.JpaWithExtLibrariesScanner.java

License:Apache License

@Override
public ScanResult scan(ScanEnvironment environment, ScanOptions options, ScanParameters parameters) {
    ScanResultCollector collector = new ScanResultCollector(environment, options, parameters);

    if (environment.getNonRootUrls() != null) {
        ArchiveContext context = new ArchiveContextImpl(false, collector);
        for (URL url : environment.getNonRootUrls()) {
            ArchiveDescriptor descriptor = buildArchiveDescriptor(url, false);
            descriptor.visitArchive(context);
        }//from w w  w . ja v a  2  s.c om
    }
    Set<URL> loadedUrls = new HashSet<>();
    if (environment.getRootUrl() != null) {
        URL rootUrl = environment.getRootUrl();
        visitUrl(rootUrl, collector, CommonMatchers.always());
    }
    visitExternUrls(environment, collector, loadedUrls);
    return collector.toScanResult();
}

From source file:de.micromata.genome.jpa.impl.JpaWithExtLibrariesScanner.java

License:Apache License

protected void visitUrl(URL url, ScanResultCollector collector, Matcher<String> urlMatcher) {
    if (urlMatcher.match(url.toString()) == false) {
        return;/*  ww  w  .j  a v  a2s. c  o  m*/
    }
    ArchiveContext context = new ArchiveContextImpl(true, collector);
    String surl = url.toString();
    if (surl.contains("!") && surl.startsWith("jar:") == false) {
        String customUrlStr = url.toString();
        customUrlStr = "jar:" + customUrlStr;
        log.info("Custom URL: " + customUrlStr);
        try {
            URL customUrl = new URL(customUrlStr);
            ArchiveDescriptor descriptor = buildArchiveDescriptor(customUrl, true);
            descriptor.visitArchive(context);
        } catch (MalformedURLException e) {
            log.error("Error while getting custom URL: " + customUrlStr);
        }
    } else {
        final ArchiveDescriptor descriptor = buildArchiveDescriptor(url, true);
        descriptor.visitArchive(context);
        handleClassManifestClassPath(url, collector, urlMatcher);
    }
}