From: Jakub Dudycz Date: Fri, 16 Feb 2018 13:05:43 +0000 (+0100) Subject: DGXMLLoad sonar fixes X-Git-Tag: v1.3.0~256 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=fc59e7faae3cafbd7a5f9f107bbcda35fc490817;p=appc.git DGXMLLoad sonar fixes Change-Id: I1e9965c8e5bd74f17fec1e47448af245b9b339c8 Issue-ID: APPC-642 Signed-off-by: Jakub Dudycz --- diff --git a/appc-directed-graph/dg-loader/provider/src/main/java/org/onap/sdnc/dg/loader/DGXMLException.java b/appc-directed-graph/dg-loader/provider/src/main/java/org/onap/sdnc/dg/loader/DGXMLException.java new file mode 100644 index 000000000..d3c93acf2 --- /dev/null +++ b/appc-directed-graph/dg-loader/provider/src/main/java/org/onap/sdnc/dg/loader/DGXMLException.java @@ -0,0 +1,26 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * 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.sdnc.dg.loader; + +class DGXMLException extends Exception{ + + DGXMLException(String message) { + super(message); + } +} diff --git a/appc-directed-graph/dg-loader/provider/src/main/java/org/onap/sdnc/dg/loader/DGXMLLoad.java b/appc-directed-graph/dg-loader/provider/src/main/java/org/onap/sdnc/dg/loader/DGXMLLoad.java index 115681574..0b072c4a5 100644 --- a/appc-directed-graph/dg-loader/provider/src/main/java/org/onap/sdnc/dg/loader/DGXMLLoad.java +++ b/appc-directed-graph/dg-loader/provider/src/main/java/org/onap/sdnc/dg/loader/DGXMLLoad.java @@ -25,30 +25,33 @@ package org.onap.sdnc.dg.loader; import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.onap.ccsdk.sli.core.sli.SvcLogicException; import org.onap.ccsdk.sli.core.sli.SvcLogicParser; import org.onap.ccsdk.sli.core.sli.SvcLogicStore; import org.onap.ccsdk.sli.core.sli.SvcLogicStoreFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class DGXMLLoad { - private final static Logger logger = LoggerFactory.getLogger(DGXMLLoad.class); + + private static final Logger logger = LoggerFactory.getLogger(DGXMLLoad.class); + public static final String STRING_ENCODING = "utf-8"; + private final SvcLogicStore store; - public static String STRING_ENCODING = "utf-8"; - public DGXMLLoad(String propfile) throws Exception { + public DGXMLLoad(String propfile) throws DGXMLException, SvcLogicException { if (StringUtils.isBlank(propfile)) { - throw new Exception(propfile + " Profile file is not defined"); + throw new DGXMLException(propfile + " Profile file is not defined"); } this.store = SvcLogicStoreFactory.getSvcLogicStore(propfile); } - protected DGXMLLoad(SvcLogicStore store) throws Exception { + protected DGXMLLoad(SvcLogicStore store) { this.store = store; } @@ -58,59 +61,63 @@ public class DGXMLLoad { } } - private void loadDGXMLDir(String xmlPath) throws Exception { + private void loadDGXMLDir(String xmlPath) { try { logger.info( - "******************** Loading DG into Database *****************************"); - List errors = new ArrayList(); + "******************** Loading DG into Database *****************************"); + List errors = new ArrayList<>(); if (this.store != null) { File xmlDir = new File(xmlPath); if (xmlDir.isDirectory()) { - String[] extensions = new String[] {"xml", "XML"}; + String[] extensions = new String[]{"xml", "XML"}; List files = (List) FileUtils.listFiles(xmlDir, extensions, true); - for (File file : files) { - logger.info("Loading DG XML file :" + file.getCanonicalPath()); - try { - SvcLogicParser.load(file.getCanonicalPath(), this.store); - } catch (Exception e) { - errors.add("Failed to load XML " + file.getCanonicalPath() - + ", Exception : " + e.getMessage()); - } - } + tryLoadXmls(errors, files); } else { - throw new Exception(xmlPath + " is not a valid XML Directory"); + throw new DGXMLException(xmlPath + " is not a valid XML Directory"); } } else { - throw new Exception("Failed to initialise SvcLogicStore"); + throw new DGXMLException("Failed to initialise SvcLogicStore"); } - if (errors.size() > 0) { - throw new Exception(errors.toString()); + if (!errors.isEmpty()) { + throw new DGXMLException(errors.toString()); } } catch (Exception e) { - logger.error(e.getMessage()); + logger.error("Failed to load DGXML directories", e); + } + } + + private void tryLoadXmls(List errors, List files) throws IOException { + for (File file : files) { + logger.info("Loading DG XML file :" + file.getCanonicalPath()); + try { + SvcLogicParser.load(file.getCanonicalPath(), store); + } catch (Exception e) { + logger.error("Failed to load XML " + file.getCanonicalPath(), e); + errors.add("Failed to load XML " + file.getCanonicalPath() + + ", Exception : " + e.getMessage()); + } } } public static void main(String[] args) { try { - String xmlPath = null; - String propertyPath = null; + String xmlPath; + String propertyPath; if (args != null && args.length >= 2) { xmlPath = args[0]; propertyPath = args[1]; } else { - throw new Exception( - "Sufficient inputs for DGXMLLoadNActivate are missing "); + throw new DGXMLException( + "Sufficient inputs for DGXMLLoadNActivate are missing "); } DGXMLLoad dgXMLLoadDB = new DGXMLLoad(propertyPath); dgXMLLoadDB.loadDGXMLDir(xmlPath); } catch (Exception e) { - e.printStackTrace(); + logger.error("Arguments missing", e); } finally { System.exit(1); } } - }