summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/PostDroolsServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/PostDroolsServiceImpl.java')
-rw-r--r--ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/PostDroolsServiceImpl.java93
1 files changed, 34 insertions, 59 deletions
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<PostDroolsBean> fetchDroolBeans() {
-
- List<PostDroolsBean> beanList = new ArrayList<PostDroolsBean>();
+
+ List<PostDroolsBean> beanList = new ArrayList<>();
Path path = FileSystems.getDefault().getPath(SystemProperties.getProperty(SystemProperties.FILES_PATH));
- try (DirectoryStream<Path> 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<Path> 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<KnowledgePackage> 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<KnowledgePackage> 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<String> selectedRules = mapper.readValue(ruleValue, List.class);
- List<String> ruleResponse = new ArrayList<String>();
-
- for(String rule : selectedRules){
+ List<String> ruleResponse = new ArrayList<>();
+
+ for (String rule : selectedRules) {
Class<DroolsRuleService> clazz = (Class<DroolsRuleService>) 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;
}
-
-
}