From 8cd208ebaa33627daf05d8ffff7b28e53a7067d0 Mon Sep 17 00:00:00 2001 From: "Christopher Lott (cl778h)" Date: Thu, 7 Sep 2017 08:52:41 -0400 Subject: Adjust code for Sonar issues Made non-functional updates to address static code analysis issues. Update license header with simple double-quote characters. Issue: PORTAL-72, PORTAL-90 Change-Id: Ic2c330daea07d721f0e6b350ebf03da97073f7ce Signed-off-by: Christopher Lott (cl778h) --- .../core/service/PostDroolsServiceImpl.java | 93 ++++++++-------------- 1 file changed, 34 insertions(+), 59 deletions(-) (limited to 'ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/PostDroolsServiceImpl.java') diff --git a/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/PostDroolsServiceImpl.java b/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/PostDroolsServiceImpl.java index 1d5d9cc9..faa15329 100644 --- a/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/PostDroolsServiceImpl.java +++ b/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/PostDroolsServiceImpl.java @@ -6,7 +6,7 @@ * =================================================================== * * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); + * under the Apache License, Version 2.0 (the "License"); * you may not use this software except in compliance with the License. * You may obtain a copy of the License at * @@ -19,7 +19,7 @@ * limitations under the License. * * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); * you may not use this documentation except in compliance with the License. * You may obtain a copy of the License at * @@ -38,8 +38,6 @@ package org.onap.portalsdk.core.service; import java.io.File; -import java.io.IOException; -import java.nio.file.DirectoryIteratorException; import java.nio.file.DirectoryStream; import java.nio.file.FileSystems; import java.nio.file.Files; @@ -65,14 +63,10 @@ import org.springframework.transaction.annotation.Transactional; import com.fasterxml.jackson.databind.ObjectMapper; -/** - * TODO REFACTOR - * - */ @Service("postDroolsService") @Transactional -public class PostDroolsServiceImpl implements PostDroolsService{ - +public class PostDroolsServiceImpl implements PostDroolsService { + private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PostDroolsServiceImpl.class); @Override @@ -82,29 +76,26 @@ public class PostDroolsServiceImpl implements PostDroolsService{ return resultsString; } - + @Override public List fetchDroolBeans() { - - List beanList = new ArrayList(); + + List beanList = new ArrayList<>(); Path path = FileSystems.getDefault().getPath(SystemProperties.getProperty(SystemProperties.FILES_PATH)); - try (DirectoryStream stream = Files.newDirectoryStream(path,"*.{drl}")) { - for (Path entry: stream) { - - PostDroolsBean postDroolsBean = new PostDroolsBean(); - String fileName = entry.getName(entry.getNameCount()-1).toString(); - postDroolsBean.setDroolsFile(fileName);//sample populated + try (DirectoryStream stream = Files.newDirectoryStream(path, "*.{drl}")) { + for (Path entry : stream) { + + PostDroolsBean postDroolsBean = new PostDroolsBean(); + String fileName = entry.getName(entry.getNameCount() - 1).toString(); + postDroolsBean.setDroolsFile(fileName);// sample populated postDroolsBean.setClassName(retrieveClass(fileName)); - //postDroolsBean.setSelectedRules("[\"NJ\",\"NY\",\"KY\"]"); beanList.add(postDroolsBean); - } - } catch (DirectoryIteratorException ex) { - logger.error(EELFLoggerDelegate.errorLogger, ex.getMessage()); - } catch (IOException e) { - logger.error(EELFLoggerDelegate.errorLogger, e.getMessage()); + } + } catch (Exception ex) { + logger.error(EELFLoggerDelegate.errorLogger, "fetchDroolBeans failed", ex); } - return beanList; + return beanList; } - + @Override public String retrieveClass(String fileName) { String resultsString = ""; @@ -113,51 +104,43 @@ public class PostDroolsServiceImpl implements PostDroolsService{ final KnowledgeBuilder kbuilder = loadKBuilder(fileName); final Collection pkgs = kbuilder.getKnowledgePackages(); return pkgs.iterator().next().getFactTypes().iterator().next().getFactClass().getName(); - + } catch (Exception e) { logger.error(EELFLoggerDelegate.errorLogger, "retrieveClass failed", e); } - + return resultsString; } - + protected static KnowledgeBuilder loadKBuilder(String fileName) { final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); // this will parse and compile in one step - kbuilder.add(ResourceFactory.newFileResource(SystemProperties.getProperty(SystemProperties.FILES_PATH) + File.separator + fileName), - //kbuilder.add(ResourceFactory.newClassPathResource(SystemProperties.getProperty(SystemProperties.FILES_PATH) + File.separator + drl_file_path, DroolsRuleService.class), + kbuilder.add( + ResourceFactory.newFileResource( + SystemProperties.getProperty(SystemProperties.FILES_PATH) + File.separator + fileName), ResourceType.DRL); - // kbuilder.add(ResourceFactory.newClassPathResource("rules.drl",DroolsRuleService.class), - // ResourceType.DRL); // Check the builder for errors if (kbuilder.hasErrors()) { - logger.error(EELFLoggerDelegate.errorLogger, kbuilder.getErrors().toString()); - - throw new RuntimeException("Unable to compile \".drl\"."); - + throw new IllegalArgumentException("Unable to compile \".drl\"."); } return kbuilder; } - @SuppressWarnings({ "deprecation", "unchecked" }) public static String executeDemoRules(String fileName, String className, String ruleValue) { String resultsString = ""; try { // load up the knowledge base - // KieServices ks = KieServices.Factory.get(); - // KieContainer kContainer = ks.getKieClasspathContainer(); - // KieSession kSession = kContainer.newKieSession("ksession-rules"); final KnowledgeBuilder kbuilder = loadKBuilder(fileName); // get the compiled packages (which are serializable) final Collection pkgs = kbuilder.getKnowledgePackages(); - + // add the packages to a knowledgebase (deploy the knowledge // packages). @@ -168,37 +151,29 @@ public class PostDroolsServiceImpl implements PostDroolsService{ final StatefulKnowledgeSession kSession = kbase.newStatefulKnowledgeSession(); ObjectMapper mapper = new ObjectMapper(); - if(ruleValue == null || ruleValue.equals("")) { + if (ruleValue == null || "".equals(ruleValue)) { resultsString = "Please enter valid rule"; return resultsString; } List selectedRules = mapper.readValue(ruleValue, List.class); - List ruleResponse = new ArrayList(); - - for(String rule : selectedRules){ + List ruleResponse = new ArrayList<>(); + + for (String rule : selectedRules) { Class clazz = (Class) Class.forName(className); - DroolsRuleService droolsIntroduction =clazz.newInstance(); + DroolsRuleService droolsIntroduction = clazz.newInstance(); droolsIntroduction.init(rule); kSession.insert(droolsIntroduction); kSession.fireAllRules(); ruleResponse.add(droolsIntroduction.getResultsString()); } - + resultsString = mapper.writeValueAsString(ruleResponse); - -// kSession.insert(new DroolsRuleService("KY")); -// kSession.fireAllRules(); -// -// kSession.setGlobal("age", "25"); -// kSession.insert(new DroolsRuleService("NY")); -// kSession.fireAllRules(); + } catch (Exception e) { logger.error(EELFLoggerDelegate.errorLogger, "executeDemoRules failed", e); } - + return resultsString; } - - } -- cgit 1.2.3-korg