diff options
Diffstat (limited to 'feature-drools-init')
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); - } -} |