+ public Set<ResourceArtifact> getResource() {
+ final Set<ResourceArtifact> result = new HashSet<>();
+ final Path dir = Paths.get(resourceLocation);
+ if (Files.exists(dir)) {
+ try (final DirectoryStream<Path> stream = Files.newDirectoryStream(dir, WILD_CARD_REGEX + DOT_CSAR)) {
+ for (final Path entry : stream) {
+ final String filename = getFilenameWithoutExtension(entry);
+ final ResourceArtifact artifact = getResourceArtifact(filename);
+ result.add(artifact);
+ LOGGER.info("Found resource on file system: {}", artifact);
+ }
+ } catch (final IOException ioException) {
+ LOGGER.error("Unable to find resources on filesystem", ioException);
+ }
+ }
+ try {
+ final String csarFileLocationPattern =
+ CLASSPATH_ALL_URL_PREFIX + MAIN_RESOURCE_FOLDER + WILD_CARD_REGEX + DOT_CSAR;
+ final Resource[] resources = resourcePatternResolver.getResources(csarFileLocationPattern);
+ if (resources != null) {
+ for (final Resource resource : resources) {
+ final ResourceArtifact artifact =
+ getResourceArtifact(getFilenameWithoutExtension(resource.getFilename()));
+ result.add(artifact);
+ LOGGER.info("Found resource in classpath: {}", artifact);
+ }
+ }
+ } catch (final IOException ioException) {
+ LOGGER.error("Unable to find resources in classpath", ioException);
+ }
+ return result;
+ }
+
+ private ResourceArtifact getResourceArtifact(final String filename) {
+ return new ResourceArtifact().uuid(filename).invariantUuid(filename).name(filename).version("1.0")
+ .toscaModelUrl(CATALOG_URL + "/resources/" + filename + "/toscaModel").category("Generic")
+ .subCategory("Network Service").resourceType("VF").lifecycleState("CERTIFIED")
+ .lastUpdaterUserId("SDC_SIMULATOR");
+ }
+
+ private String getFilenameWithoutExtension(final String filename) {
+ return filename.substring(0, filename.lastIndexOf('.'));
+ }
+
+ private String getFilenameWithoutExtension(final Path file) {
+ return getFilenameWithoutExtension(file.getFileName().toString());
+ }
+
+ private Optional<InputStream> getInputStream(final String csarId) throws IOException {
+ final Path filePath = Paths.get(resourceLocation, csarId + DOT_CSAR);