X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Ftools%2Fnetconf-testtool%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Ftest%2Ftool%2Fschemacache%2FSchemaSourceCache.java;h=9ac7b647c0b22412c507331bb752145094809819;hb=676b7818fd81f1322b7e8aa977271f3a3af397a6;hp=9ece5a910baa11d5154e31d9fc98ae7c4a8fba2e;hpb=2d700ef3c343e50f12cfeccc7fb755541deee361;p=netconf.git diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/schemacache/SchemaSourceCache.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/schemacache/SchemaSourceCache.java index 9ece5a910b..9ac7b647c0 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/schemacache/SchemaSourceCache.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/schemacache/SchemaSourceCache.java @@ -8,21 +8,20 @@ package org.opendaylight.netconf.test.tool.schemacache; import com.google.common.base.MoreObjects.ToStringHelper; -import com.google.common.base.Optional; import com.google.common.base.Preconditions; -import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; -import java.io.IOException; +import com.google.common.util.concurrent.ListenableFuture; import java.io.InputStream; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.opendaylight.netconf.test.tool.TestToolUtils; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.repo.api.MissingSchemaSourceException; import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; -import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceException; import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; @@ -40,9 +39,8 @@ public final class SchemaSourceCache private static final Logger LOG = LoggerFactory.getLogger(SchemaSourceCache.class); - public static final Pattern CACHED_FILE_PATTERN = - Pattern.compile( - ".*/(?[^@]+)" + "(@(?" + SourceIdentifier.REVISION_PATTERN + "))?.yang"); + public static final Pattern CACHED_FILE_PATTERN = Pattern.compile( + ".*/(?[^@]+)" + "(@(?" + Revision.STRING_FORMAT_PATTERN + "))?.yang"); private final Class representation; private final Set modelList; @@ -77,17 +75,15 @@ public final class SchemaSourceCache } @Override - public synchronized CheckedFuture getSource( - final SourceIdentifier sourceIdentifier) { + public synchronized ListenableFuture getSource(final SourceIdentifier sourceIdentifier) { ModelData modelData = cachedSchemas.get(sourceIdentifier.toYangFilename()); if (modelData != null) { final SchemaSourceRepresentation restored = restoreAsType(modelData.getId(), modelData.getPath()); - return Futures.immediateCheckedFuture(representation.cast(restored)); - } else { - LOG.debug("Source {} not found in cache as {}", sourceIdentifier); - return Futures.immediateFailedCheckedFuture(new MissingSchemaSourceException("Source not found", - sourceIdentifier)); + return Futures.immediateFuture(representation.cast(restored)); } + + LOG.debug("Source {} not found in cache as {}", sourceIdentifier); + return Futures.immediateFailedFuture(new MissingSchemaSourceException("Source not found", sourceIdentifier)); } @Override @@ -95,7 +91,8 @@ public final class SchemaSourceCache LOG.trace("Source {} offered to cache", source.getIdentifier()); } - private YangTextSchemaSource restoreAsType(final SourceIdentifier sourceIdentifier, final String cachedSource) { + private static YangTextSchemaSource restoreAsType(final SourceIdentifier sourceIdentifier, + final String cachedSource) { return new YangTextSchemaSource(sourceIdentifier) { @Override @@ -104,7 +101,7 @@ public final class SchemaSourceCache } @Override - public InputStream openStream() throws IOException { + public InputStream openStream() { return TestToolUtils.getDataAsStream(cachedSource); } }; @@ -114,10 +111,9 @@ public final class SchemaSourceCache final Matcher matcher = CACHED_FILE_PATTERN.matcher(fileName); if (matcher.matches()) { final String moduleName = matcher.group("moduleName"); - final String revision = matcher.group("revision"); - return Optional.of(RevisionSourceIdentifier.create(moduleName, Optional.fromNullable(revision))); + final Optional revision = Revision.ofNullable(matcher.group("revision")); + return Optional.of(RevisionSourceIdentifier.create(moduleName, revision)); } - return Optional.absent(); + return Optional.empty(); } - }