summaryrefslogtreecommitdiffstats
path: root/controlloop/m2/util
diff options
context:
space:
mode:
Diffstat (limited to 'controlloop/m2/util')
-rw-r--r--controlloop/m2/util/pom.xml41
-rw-r--r--controlloop/m2/util/src/main/java/org/onap/policy/util/DroolsSessionCommonSerializable.java134
-rw-r--r--controlloop/m2/util/src/test/java/org/onap/policy/util/DroolsSessionCommonSerializableTest.java89
3 files changed, 0 insertions, 264 deletions
diff --git a/controlloop/m2/util/pom.xml b/controlloop/m2/util/pom.xml
deleted file mode 100644
index 3decb3431..000000000
--- a/controlloop/m2/util/pom.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0"?>
-<!--
- ============LICENSE_START=======================================================
- ONAP Policy Engine - Drools PDP
- ================================================================================
- Copyright (C) 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-applications.controlloop.m2</groupId>
- <artifactId>m2</artifactId>
- <version>1.7.1-SNAPSHOT</version>
- </parent>
-
- <artifactId>util</artifactId>
-
- <dependencies>
- <dependency>
- <groupId>org.onap.policy.drools-pdp</groupId>
- <artifactId>policy-core</artifactId>
- <version>${version.policy.drools-pdp}</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-</project>
diff --git a/controlloop/m2/util/src/main/java/org/onap/policy/util/DroolsSessionCommonSerializable.java b/controlloop/m2/util/src/main/java/org/onap/policy/util/DroolsSessionCommonSerializable.java
deleted file mode 100644
index 0d60b2598..000000000
--- a/controlloop/m2/util/src/main/java/org/onap/policy/util/DroolsSessionCommonSerializable.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * util
- * ================================================================================
- * Copyright (C) 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.util;
-
-import java.io.ObjectStreamException;
-import java.io.Serializable;
-import java.util.HashMap;
-import org.onap.policy.drools.core.PolicySession;
-
-/**
- * This class provides a way to serialize/deserialize objects by locating
- * an already existing object on the remote end, and using that instead. It
- * is useful for objects that may be shared by multiple transactions.
- */
-public class DroolsSessionCommonSerializable implements Serializable {
- private static final long serialVersionUID = 1L;
-
- // identifies an object within a Drools session
- private String name;
-
- // the object is serialized, but is only used if the corresponding object
- // on the remote end can't be located for some reason
- private Object object;
-
- /**
- * Constructor - initialize instance, and also store a reference to
- * the object in a 'PolicySession' adjunct.
- *
- * @param name identifies the object within the Drools session
- * @param object the shared object
- */
- public DroolsSessionCommonSerializable(String name, Object object) {
- this.name = name;
- this.object = object;
-
- // store a reference to the object within the adjunct
- // (only works if we can locate the Drools session)
- Adjunct adjunct = getAdjunct();
- if (adjunct != null) {
- adjunct.put(name, object);
- }
- }
-
- /**
- * Return this object as a String.
- *
- * {@inheritDoc}
- */
- @Override
- public String toString() {
- return "DroolsSessionCommonSerializable[" + name + "]";
- }
-
- /**
- * This method runs as part of deserialization. If we are able to locate
- * the 'PolicySession' and adjunct, and fetch the replacement object from
- * the adjunct, that is used. Otherwise, the deserialized object is used
- * (which is likely a duplicate).
- *
- * @return the local named object (if available), or the deserialized
- * object
- */
- protected Object readResolve() throws ObjectStreamException {
- Adjunct adjunct = getAdjunct();
- Object replacementObject;
-
- if (adjunct != null && (replacementObject = adjunct.get(name)) != null) {
- // we found the adjunct, as well as the replacement object -- use
- // the replacement object
- return replacementObject;
- }
-
- // either we couldn't find the adjunct, or couldn't locate the object
- // within the adjunct
- return object;
- }
-
- /**
- * This method will:
- * 1) Locate the 'PolicySession' (only works from within the Drools thread),
- * 2) Find or create the adjunct.
- *
- * @return the adjunct, or 'null' if we aren't running within a
- * Drools session
- */
- private Adjunct getAdjunct() {
- // PolicySession - this only works from within the Drools thread
- PolicySession session = PolicySession.getCurrentSession();
- Adjunct adjunct = null;
- if (session != null) {
- // we found the 'PolicySession' -- now, look for the adjunct
- Object adj = session.getAdjunct(Adjunct.class);
- if (!(adj instanceof Adjunct)) {
- // adjunct does not exist, or has the wrong type -- create it
- adjunct = new Adjunct();
- session.setAdjunct(Adjunct.class, adjunct);
- } else {
- // found the adjunct -- return it
- adjunct = (Adjunct) adj;
- }
- }
- return adjunct;
- }
-
- /* ============================================================ */
-
- /**
- * While 'HashMap&lt;String, Object&gt;' could be used directly instead of defining
- * a subclass, you can't do run-time type checking of a parameterized type.
- * As a result, the 'getAdjunct' method (above) would get compile-time
- * warnings.
- */
- private static class Adjunct extends HashMap<String, Object> {
- private static final long serialVersionUID = 1L;
- }
-}
diff --git a/controlloop/m2/util/src/test/java/org/onap/policy/util/DroolsSessionCommonSerializableTest.java b/controlloop/m2/util/src/test/java/org/onap/policy/util/DroolsSessionCommonSerializableTest.java
deleted file mode 100644
index 24c04f70d..000000000
--- a/controlloop/m2/util/src/test/java/org/onap/policy/util/DroolsSessionCommonSerializableTest.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * util
- * ================================================================================
- * Copyright (C) 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.util;
-
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mockito;
-import org.onap.policy.drools.core.PolicySession;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.reflect.Whitebox;
-
-@RunWith(PowerMockRunner.class)
-public class DroolsSessionCommonSerializableTest {
-
- private DroolsSessionCommonSerializable droolsSessionCommonSerializable;
-
- @Test
- public void test() {
- Object object = new Object();
- droolsSessionCommonSerializable = new DroolsSessionCommonSerializable("drools", object);
- assertNotNull(droolsSessionCommonSerializable.toString());
- }
-
- @PrepareForTest(PolicySession.class)
- @Test
- public void testConstructorGetNullAdjunct() {
- PowerMockito.mockStatic(PolicySession.class);
- PolicySession mockPolicySession = Mockito.mock(PolicySession.class);
- Object mockObject = Mockito.mock(Object.class);
-
- when(PolicySession.getCurrentSession()).thenReturn(mockPolicySession);
- when(mockPolicySession.getAdjunct(any(Class.class))).thenReturn(null);
-
- droolsSessionCommonSerializable = new DroolsSessionCommonSerializable("testName", mockObject);
-
- verify(mockPolicySession).getAdjunct(any(Class.class));
- assertNotNull(droolsSessionCommonSerializable.toString());
- }
-
- @PrepareForTest(PolicySession.class)
- @Test
- public void testConstructorGetAdjunct() {
- PowerMockito.mockStatic(PolicySession.class);
- PolicySession mockPolicySession = Mockito.mock(PolicySession.class);
- Object mockObject = Mockito.mock(Object.class);
-
- when(PolicySession.getCurrentSession()).thenReturn(mockPolicySession);
- when(mockPolicySession.getAdjunct(any(Class.class))).thenReturn(mockObject);
-
- droolsSessionCommonSerializable = new DroolsSessionCommonSerializable("testName", mockObject);
-
- verify(mockPolicySession).getAdjunct(any(Class.class));
- assertNotNull(droolsSessionCommonSerializable.toString());
- }
-
- @Test
- public void testReadResolve() throws Exception {
- Object mockObject = Mockito.mock(Object.class);
- droolsSessionCommonSerializable = new DroolsSessionCommonSerializable("testName", mockObject);
-
- assertNotNull(Whitebox.invokeMethod(droolsSessionCommonSerializable, "readResolve"));
- assertNotNull(droolsSessionCommonSerializable.toString());
- }
-}