aboutsummaryrefslogtreecommitdiffstats
path: root/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicCrawler.java
diff options
context:
space:
mode:
authorDan Timoney <dtimoney@att.com>2017-12-05 11:50:42 -0500
committerDan Timoney <dtimoney@att.com>2017-12-05 11:50:42 -0500
commit13cbc4e6633e4cef9cc33d10c11b9b177213acd9 (patch)
tree1ef5785a6355f9491d7f2f9cf8fcbfaea3e66d40 /sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicCrawler.java
parent7cb74a4e851ae85ffa8c7cd1ebe94007418b816c (diff)
SLI parser improvements
Update SLI parser to remove validation based on NODE_TYPE table, which is no longer needed (was introduced prior to use of XSD schema validation). Also, use checksums to avoid needless recompilation if version being loaded already exists in database. Change-Id: Idfcba94de8fb71b17d5e0c5e69e04dee266988b1 Issue-ID: CCSDK-152 Signed-off-by: Dan Timoney <dtimoney@att.com>
Diffstat (limited to 'sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicCrawler.java')
-rw-r--r--sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicCrawler.java90
1 files changed, 90 insertions, 0 deletions
diff --git a/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicCrawler.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicCrawler.java
new file mode 100644
index 00000000..5ee138a3
--- /dev/null
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicCrawler.java
@@ -0,0 +1,90 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : SDN-C
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.ccsdk.sli.core.sli;
+
+import static java.nio.file.FileVisitResult.CONTINUE;
+
+import java.io.IOException;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Path;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.ArrayList;
+import java.util.List;
+
+public class SvcLogicCrawler extends SimpleFileVisitor<Path> {
+
+ private List<Path> xmlGraphPathList;
+ private List<Path> activationFilePathList;
+
+ public SvcLogicCrawler() {
+ xmlGraphPathList = new ArrayList<Path>();
+ activationFilePathList = new ArrayList<Path>();
+ }
+
+ @Override
+ public FileVisitResult visitFile(Path file, BasicFileAttributes attr) {
+ if (attr.isRegularFile()) {
+ String fileName = file.getFileName().toString();
+ if (!file.toString().contains(".git") && !fileName.equals("pom.xml") && !fileName.equals("assemble_zip.xml") && !fileName.equals("assemble_zip_less_config.xml") && !fileName.equals("descriptor.xml")) {
+ if (fileName.endsWith(".xml")) {
+ xmlGraphPathList.add(file);
+ }
+ else if (fileName.endsWith(".versions")) {
+ activationFilePathList.add(file);
+ }
+ }
+ }
+ return CONTINUE;
+ }
+
+ @Override
+ public FileVisitResult postVisitDirectory(Path dir, IOException exc) {
+ return CONTINUE;
+ }
+
+ @Override
+ public FileVisitResult visitFileFailed(Path file, IOException exc) {
+ System.err.println("Couldn't visitFile");
+ System.err.println(exc.getMessage());
+ return CONTINUE;
+ }
+
+ @Override
+ public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
+ String[] skipDirectories = {".git"};
+ for (String str : skipDirectories) {
+ if (dir.endsWith(str)) {
+ return FileVisitResult.SKIP_SUBTREE;
+ }
+ }
+ return CONTINUE;
+ }
+
+ public List<Path> getGraphPaths() {
+ return this.xmlGraphPathList;
+ }
+
+ public List<Path> getActivationPaths() {
+ return this.activationFilePathList;
+ }
+}