summaryrefslogtreecommitdiffstats
path: root/feature-drools-init
diff options
context:
space:
mode:
Diffstat (limited to 'feature-drools-init')
-rw-r--r--feature-drools-init/pom.xml86
-rw-r--r--feature-drools-init/src/assembly/assemble_zip.xml76
-rw-r--r--feature-drools-init/src/main/java/org/onap/policy/drools/droolsinit/DroolsInitFeature.java81
-rw-r--r--feature-drools-init/src/main/resources/META-INF/services/org.onap.policy.drools.core.PolicySessionFeatureApi1
-rw-r--r--feature-drools-init/src/test/java/org/onap/policy/drools/droolsinit/DroolsInitFeatureTest.java110
5 files changed, 0 insertions, 354 deletions
diff --git a/feature-drools-init/pom.xml b/feature-drools-init/pom.xml
deleted file mode 100644
index 40ae9de6..00000000
--- a/feature-drools-init/pom.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<!--
- ============LICENSE_START=======================================================
- ONAP Policy Engine - Drools PDP
- ================================================================================
- Copyright (C) 2019-2020 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=========================================================
- -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.onap.policy.drools-pdp</groupId>
- <artifactId>drools-pdp</artifactId>
- <version>1.10.1-SNAPSHOT</version>
- </parent>
-
- <artifactId>feature-drools-init</artifactId>
- <name>feature-drools-init</name>
-
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <id>zipfile</id>
- <goals>
- <goal>single</goal>
- </goals>
- <phase>package</phase>
- <configuration>
- <attach>true</attach>
- <finalName>${project.artifactId}-${project.version}</finalName>
- <descriptors>
- <descriptor>src/assembly/assemble_zip.xml</descriptor>
- </descriptors>
- <appendAssemblyId>false</appendAssemblyId>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <dependencies>
- <dependency>
- <groupId>org.onap.policy.drools-pdp</groupId>
- <artifactId>policy-core</artifactId>
- <version>${project.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.onap.policy.drools-pdp</groupId>
- <artifactId>policy-management</artifactId>
- <version>${project.version}</version>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.powermock</groupId>
- <artifactId>powermock-api-mockito2</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
-</project>
diff --git a/feature-drools-init/src/assembly/assemble_zip.xml b/feature-drools-init/src/assembly/assemble_zip.xml
deleted file mode 100644
index 948cb11c..00000000
--- a/feature-drools-init/src/assembly/assemble_zip.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<!--
- ============LICENSE_START=======================================================
- feature-drools-init
- ================================================================================
- Copyright (C) 2019 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=========================================================
- -->
-
-<!-- Defines how we build the .zip file which is our distribution. -->
-
-<assembly
- xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
-
- <id>feature-drools-init-package</id>
- <formats>
- <format>zip</format>
- </formats>
-
- <includeBaseDirectory>false</includeBaseDirectory>
-
- <fileSets>
- <fileSet>
- <directory>target</directory>
- <outputDirectory>lib/feature</outputDirectory>
- <includes>
- <include>feature-drools-init-${project.version}.jar</include>
- </includes>
- </fileSet>
- <fileSet>
- <directory>target/assembly/lib</directory>
- <outputDirectory>lib/dependencies</outputDirectory>
- <includes>
- <include>*.jar</include>
- </includes>
- </fileSet>
- <fileSet>
- <directory>src/main/feature/config</directory>
- <outputDirectory>config</outputDirectory>
- <fileMode>0644</fileMode>
- <excludes/>
- </fileSet>
- <fileSet>
- <directory>src/main/feature/bin</directory>
- <outputDirectory>bin</outputDirectory>
- <fileMode>0744</fileMode>
- <excludes/>
- </fileSet>
- <fileSet>
- <directory>src/main/feature/db</directory>
- <outputDirectory>db</outputDirectory>
- <fileMode>0744</fileMode>
- <excludes/>
- </fileSet>
- <fileSet>
- <directory>src/main/feature/install</directory>
- <outputDirectory>install</outputDirectory>
- <fileMode>0744</fileMode>
- <excludes/>
- </fileSet>
- </fileSets>
-
-</assembly>
diff --git a/feature-drools-init/src/main/java/org/onap/policy/drools/droolsinit/DroolsInitFeature.java b/feature-drools-init/src/main/java/org/onap/policy/drools/droolsinit/DroolsInitFeature.java
deleted file mode 100644
index 923083cb..00000000
--- a/feature-drools-init/src/main/java/org/onap/policy/drools/droolsinit/DroolsInitFeature.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * feature-drools-init
- * ================================================================================
- * Copyright (C) 2019, 2021 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.policy.drools.droolsinit;
-
-import java.io.Serializable;
-import java.util.concurrent.TimeUnit;
-import org.onap.policy.drools.core.PolicySession;
-import org.onap.policy.drools.core.PolicySessionFeatureApi;
-import org.onap.policy.drools.system.PolicyEngineConstants;
-
-/**
- * This feature inserts an object of class 'DroolsInitFeature.Init' into
- * every newly-created or updated Drools session, including those that were
- * initialized with persistent data. Rules matching on objects of this type
- * can then do things like initialize global data.
- */
-public class DroolsInitFeature implements PolicySessionFeatureApi {
- // default delay is 10 minutes
- private static final long DELAY = 600000L;
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public int getSequenceNumber() {
- return 0;
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public PolicySession.ThreadModel selectThreadModel(PolicySession policySession) {
- new Init(policySession);
- return null;
- }
-
- /**
- * Instances of this class are inserted into Drools memory.
- */
- public static class Init implements Serializable {
- private static final long serialVersionUID = 1L;
-
- /**
- * Place this instance in Drools memory, and then remove it after
- * one minute, if it is still there.
- *
- * @param policySession the associated session
- */
- public Init(final PolicySession policySession) {
- // insert this instance into Drools memory
- final var factHandle = policySession.getKieSession().insert(this);
-
- // after 10 minutes, remove the object from Drools memory (if needed)
- PolicyEngineConstants.getManager().getExecutorService().schedule(() -> {
- if (policySession.getKieSession().getObject(factHandle) != null) {
- // object has not been removed by application -- remove it here
- policySession.getKieSession().delete(factHandle);
- }
- }, DELAY, TimeUnit.MILLISECONDS);
- }
- }
-}
diff --git a/feature-drools-init/src/main/resources/META-INF/services/org.onap.policy.drools.core.PolicySessionFeatureApi b/feature-drools-init/src/main/resources/META-INF/services/org.onap.policy.drools.core.PolicySessionFeatureApi
deleted file mode 100644
index 9c088eee..00000000
--- a/feature-drools-init/src/main/resources/META-INF/services/org.onap.policy.drools.core.PolicySessionFeatureApi
+++ /dev/null
@@ -1 +0,0 @@
-org.onap.policy.drools.droolsinit.DroolsInitFeature
diff --git a/feature-drools-init/src/test/java/org/onap/policy/drools/droolsinit/DroolsInitFeatureTest.java b/feature-drools-init/src/test/java/org/onap/policy/drools/droolsinit/DroolsInitFeatureTest.java
deleted file mode 100644
index 28b4d5e9..00000000
--- a/feature-drools-init/src/test/java/org/onap/policy/drools/droolsinit/DroolsInitFeatureTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * feature-drools-init
- * ================================================================================
- * Copyright (C) 2019-2020 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.policy.drools.droolsinit;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.ScheduledThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.kie.api.runtime.KieSession;
-import org.kie.api.runtime.rule.FactHandle;
-import org.onap.policy.drools.core.PolicySession;
-import org.onap.policy.drools.system.PolicyEngineConstants;
-import org.powermock.reflect.Whitebox;
-
-public class DroolsInitFeatureTest {
- private static final String POLICY_ENGINE_EXECUTOR_FIELD = "executorService";
- private static ScheduledExecutorService saveExec;
- private static PolicySession policySession;
- private static KieSession kieSession;
-
- private DroolsInitFeature feature;
-
- /**
- * Class-level initialization.
- */
- @BeforeClass
- public static void setUpBeforeClass() {
- saveExec = Whitebox.getInternalState(PolicyEngineConstants.getManager(), POLICY_ENGINE_EXECUTOR_FIELD);
-
- policySession = mock(PolicySession.class);
- kieSession = mock(KieSession.class);
- when(policySession.getKieSession()).thenReturn(kieSession);
- }
-
- /**
- * Restore 'PolicyEngineConstants.manager'.
- */
- @AfterClass
- public static void cleanup() {
- Whitebox.setInternalState(PolicyEngineConstants.getManager(), POLICY_ENGINE_EXECUTOR_FIELD, saveExec);
- }
-
- @Before
- public void setUp() {
- feature = new DroolsInitFeature();
- }
-
- @Test
- public void getSequenceNumberTest() {
- assertEquals(0, feature.getSequenceNumber());
- }
-
- @Test
- public void selectThreadModelTest() {
- assertNull(feature.selectThreadModel(policySession));
- }
-
- @Test
- public void testInit() {
- FactHandle factHandle = mock(FactHandle.class);
- when(kieSession.insert(any())).thenReturn(factHandle);
- when(kieSession.getObject(factHandle)).thenReturn(new Object());
-
- // dummy 'ScheduledExecutorService' -- 'schedule' runs immediately
- ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(3) {
- @Override
- public ScheduledFuture<?> schedule(Runnable runnable, long delay, TimeUnit unit) {
- runnable.run();
- return null;
- }
- };
-
- Whitebox.setInternalState(PolicyEngineConstants.getManager(), POLICY_ENGINE_EXECUTOR_FIELD, executorService);
-
- // triggers creation of 'DroolsInitFeature.Init'
- feature.selectThreadModel(policySession);
-
- // prove that the 'delete' code ran
- verify(kieSession).delete(factHandle);
- }
-}