From ecc059f29f8da065356571ef00c6cad595e298b3 Mon Sep 17 00:00:00 2001 From: ramverma Date: Fri, 31 Aug 2018 17:16:01 +0100 Subject: Adding code for managing life cycle of SDC Client * Adding init/start/stop methods in SDCReceptionHandler for managing lifecycle of SDC Client. * Adding a handler status enum to hold all the possible status values. * Adding test cases to cover code changes fully. Change-Id: Ib6f370485ff330538bfada6030c592629ed3fd1c Issue-ID: POLICY-956 Signed-off-by: ramverma --- .../decoding/PluginTerminationException.java | 51 ++++++++++++++++++++++ .../handling/AbstractReceptionHandler.java | 5 ++- .../reception/handling/ReceptionHandler.java | 5 ++- .../PluginInitializationExceptionTest.java | 50 +++++++++++++++++++++ .../decoding/PluginTerminationExceptionTest.java | 49 +++++++++++++++++++++ .../PolicyInitializationExceptionTest.java | 50 --------------------- 6 files changed, 157 insertions(+), 53 deletions(-) create mode 100644 reception/src/main/java/org/onap/policy/distribution/reception/decoding/PluginTerminationException.java create mode 100644 reception/src/test/java/org/onap/policy/distribution/reception/decoding/PluginInitializationExceptionTest.java create mode 100644 reception/src/test/java/org/onap/policy/distribution/reception/decoding/PluginTerminationExceptionTest.java delete mode 100644 reception/src/test/java/org/onap/policy/distribution/reception/decoding/PolicyInitializationExceptionTest.java (limited to 'reception') diff --git a/reception/src/main/java/org/onap/policy/distribution/reception/decoding/PluginTerminationException.java b/reception/src/main/java/org/onap/policy/distribution/reception/decoding/PluginTerminationException.java new file mode 100644 index 00000000..be9f51cb --- /dev/null +++ b/reception/src/main/java/org/onap/policy/distribution/reception/decoding/PluginTerminationException.java @@ -0,0 +1,51 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.distribution.reception.decoding; + +/** + * This exception will be called if an error occurs while terminating distribution plugins. + * + * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) + */ +public class PluginTerminationException extends Exception { + + private static final long serialVersionUID = 3809376274411309160L; + + /** + * Construct an instance with the given message. + * + * @param message the error message + */ + public PluginTerminationException(final String message) { + super(message); + } + + /** + * Construct an instance with the given message and cause. + * + * @param message the error message + * @param cause the cause + */ + public PluginTerminationException(final String message, final Throwable cause) { + super(message, cause); + } + +} diff --git a/reception/src/main/java/org/onap/policy/distribution/reception/handling/AbstractReceptionHandler.java b/reception/src/main/java/org/onap/policy/distribution/reception/handling/AbstractReceptionHandler.java index b189a2ab..a9d76a01 100644 --- a/reception/src/main/java/org/onap/policy/distribution/reception/handling/AbstractReceptionHandler.java +++ b/reception/src/main/java/org/onap/policy/distribution/reception/handling/AbstractReceptionHandler.java @@ -54,7 +54,7 @@ public abstract class AbstractReceptionHandler implements ReceptionHandler { final ReceptionHandlerParameters receptionHandlerParameters = (ReceptionHandlerParameters) ParameterService.get(parameterGroupName); pluginHandler = new PluginHandler(receptionHandlerParameters.getPluginHandlerParameters().getName()); - initializeReception(parameterGroupName); + initializeReception(receptionHandlerParameters.getPssdConfigurationParametersGroup().getName()); } /** @@ -62,8 +62,9 @@ public abstract class AbstractReceptionHandler implements ReceptionHandler { * example setting up subscriptions. * * @param parameterGroupName the parameter group name + * @throws PluginInitializationException if initialization of reception handler fails */ - protected abstract void initializeReception(String parameterGroupName); + protected abstract void initializeReception(String parameterGroupName) throws PluginInitializationException; /** * Handle input that has been received. The given input shall be decoded using the {@link PolicyDecoder}s configured diff --git a/reception/src/main/java/org/onap/policy/distribution/reception/handling/ReceptionHandler.java b/reception/src/main/java/org/onap/policy/distribution/reception/handling/ReceptionHandler.java index 5fcfb9c0..3678c69c 100644 --- a/reception/src/main/java/org/onap/policy/distribution/reception/handling/ReceptionHandler.java +++ b/reception/src/main/java/org/onap/policy/distribution/reception/handling/ReceptionHandler.java @@ -21,6 +21,7 @@ package org.onap.policy.distribution.reception.handling; import org.onap.policy.distribution.reception.decoding.PluginInitializationException; +import org.onap.policy.distribution.reception.decoding.PluginTerminationException; /** * Handles input into Policy Distribution which may be decoded into a Policy. @@ -37,7 +38,9 @@ public interface ReceptionHandler { /** * Destroy the reception handler, removing any subscriptions and releasing all resources. + * + * @throws PluginTerminationException if it occurs */ - void destroy(); + void destroy() throws PluginTerminationException; } diff --git a/reception/src/test/java/org/onap/policy/distribution/reception/decoding/PluginInitializationExceptionTest.java b/reception/src/test/java/org/onap/policy/distribution/reception/decoding/PluginInitializationExceptionTest.java new file mode 100644 index 00000000..b63e6677 --- /dev/null +++ b/reception/src/test/java/org/onap/policy/distribution/reception/decoding/PluginInitializationExceptionTest.java @@ -0,0 +1,50 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.distribution.reception.decoding; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +/** + * Class to perform unit test of {@link PluginInitializationException}. + * + * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) + */ +public class PluginInitializationExceptionTest { + + @Test + public void testPluginInitializationExceptionString() { + final PluginInitializationException pluginInitializationException = + new PluginInitializationException("error message"); + assertEquals("error message", pluginInitializationException.getMessage()); + } + + @Test + public void testPluginInitializationExceptionStringThrowable() { + final Exception cause = new IllegalArgumentException(); + final PluginInitializationException pluginInitializationException = + new PluginInitializationException("error message", cause); + assertEquals("error message", pluginInitializationException.getMessage()); + assertEquals(cause, pluginInitializationException.getCause()); + } + +} diff --git a/reception/src/test/java/org/onap/policy/distribution/reception/decoding/PluginTerminationExceptionTest.java b/reception/src/test/java/org/onap/policy/distribution/reception/decoding/PluginTerminationExceptionTest.java new file mode 100644 index 00000000..b450e32b --- /dev/null +++ b/reception/src/test/java/org/onap/policy/distribution/reception/decoding/PluginTerminationExceptionTest.java @@ -0,0 +1,49 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.distribution.reception.decoding; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +/** + * Class to perform unit test of {@link PluginTerminationException} + * + * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) + */ +public class PluginTerminationExceptionTest { + + @Test + public void testPluginTerminationExceptionString() { + final PluginTerminationException pluginTerminationException = new PluginTerminationException("error message"); + assertEquals("error message", pluginTerminationException.getMessage()); + } + + @Test + public void testPluginTerminationExceptionStringThrowable() { + final Exception cause = new IllegalArgumentException(); + final PluginTerminationException pluginTerminationException = + new PluginTerminationException("error message", cause); + assertEquals("error message", pluginTerminationException.getMessage()); + assertEquals(cause, pluginTerminationException.getCause()); + } + +} diff --git a/reception/src/test/java/org/onap/policy/distribution/reception/decoding/PolicyInitializationExceptionTest.java b/reception/src/test/java/org/onap/policy/distribution/reception/decoding/PolicyInitializationExceptionTest.java deleted file mode 100644 index bf327554..00000000 --- a/reception/src/test/java/org/onap/policy/distribution/reception/decoding/PolicyInitializationExceptionTest.java +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2016-2018 Ericsson. 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.distribution.reception.decoding; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -/** - * Class to perform unit test of PluginInitializationException. - * - * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) - */ -public class PolicyInitializationExceptionTest { - - @Test - public void testPolicyInitializationExceptionString() { - final PluginInitializationException policyInitializationException = - new PluginInitializationException("error message"); - assertEquals("error message", policyInitializationException.getMessage()); - } - - @Test - public void testPolicyInitializationExceptionStringThrowable() { - final Exception cause = new IllegalArgumentException(); - final PluginInitializationException policyInitializationException = - new PluginInitializationException("error message", cause); - assertEquals("error message", policyInitializationException.getMessage()); - assertEquals(cause, policyInitializationException.getCause()); - } - -} -- cgit 1.2.3-korg