private Optional locate()

in extensions/qute/component/src/main/java/org/apache/camel/component/qute/QuteEndpoint.java [95:130]


    private Optional<TemplateLocation> locate(String path) {
        return Optional.of(new TemplateLocation() {
            private URL locatePath(String path) {
                ClassLoader cl = Thread.currentThread().getContextClassLoader();
                if (cl == null) {
                    cl = QuteEndpoint.class.getClassLoader();
                }

                return cl.getResource(path);
            }

            @Override
            public Reader read() {
                try {
                    InputStream in;
                    if (path.equals(getResourceUri())) {
                        in = getResourceAsInputStream();
                    } else {
                        in = locatePath(path).openStream();
                    }

                    Reader reader = getEncoding() != null ? new InputStreamReader(in, getEncoding())
                            : new InputStreamReader(in);
                    return reader;
                } catch (Exception e) {
                    log.warn("Can not load template " + path + " due to " + e);
                    return null;
                }
            }

            @Override
            public Optional<Variant> getVariant() {
                return Optional.empty();
            }
        });
    }