diff options
author | aravind.est <aravindhan.a@est.tech> | 2024-02-16 18:44:53 +0000 |
---|---|---|
committer | aravind.est <aravindhan.a@est.tech> | 2024-02-16 18:44:53 +0000 |
commit | 00fd5055c54d94b99cd52e8bd737f2bfac4287d0 (patch) | |
tree | 15edc98d2543cc17676c4628aa4715fe21c70c8e /a1-policy-management/src/main/java | |
parent | 7ae613e5469750773d32bf2e25361f6c73eb150f (diff) |
Improve error message for A1 client custom adapter handling
Error message improvement when using custom handler.
Issue-ID: CCSDK-3986
Signed-off-by: aravind.est <aravindhan.a@est.tech>
Change-Id: I11db77d7f861432614a7685498eeca02bba1a8fb
Diffstat (limited to 'a1-policy-management/src/main/java')
-rw-r--r-- | a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java index 87776c0f..b5c10bf6 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java @@ -3,6 +3,7 @@ * ONAP : ccsdk oran * ====================================================================== * Copyright (C) 2020-2023 Nordix Foundation. All rights reserved. + * Copyright (C) 2024 OpenInfra Foundation Europe. 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. @@ -105,22 +106,31 @@ public class A1ClientFactory { private A1Client createCustomAdapter(Ric ric) throws ServiceException { try { - Class<?> clazz = Class.forName(ric.getConfig().getCustomAdapterClass()); - if (A1Client.class.isAssignableFrom(clazz)) { - Constructor<?> constructor = clazz.getConstructor(RicConfig.class, AsyncRestClientFactory.class); - logger.debug("A1Client (" + clazz.getTypeName() + ") being created for ric: {}", - ric.getConfig().getRicId()); - return (A1Client) constructor.newInstance(ric.getConfig(), this.restClientFactory); - } else if (A1Client.Factory.class.isAssignableFrom(clazz)) { - A1Client.Factory factory = (A1Client.Factory) clazz.getDeclaredConstructor().newInstance(); - logger.debug("A1Client (" + clazz.getTypeName() + ") factory creating client for ric: {}", - ric.getConfig().getRicId()); - return factory.create(ric.getConfig(), this.restClientFactory); + if (ric.getConfig().getCustomAdapterClass() != null && !ric.getConfig().getCustomAdapterClass().isEmpty()) { + Class<?> clazz = Class.forName(ric.getConfig().getCustomAdapterClass()); + if (A1Client.class.isAssignableFrom(clazz)) { + Constructor<?> constructor = clazz.getConstructor(RicConfig.class, AsyncRestClientFactory.class); + logger.debug("A1Client (" + clazz.getTypeName() + ") being created for ric: {}", + ric.getConfig().getRicId()); + return (A1Client) constructor.newInstance(ric.getConfig(), this.restClientFactory); + } else if (A1Client.Factory.class.isAssignableFrom(clazz)) { + A1Client.Factory factory = (A1Client.Factory) clazz.getDeclaredConstructor().newInstance(); + logger.debug("A1Client (" + clazz.getTypeName() + ") factory creating client for ric: {}", + ric.getConfig().getRicId()); + return factory.create(ric.getConfig(), this.restClientFactory); + } else { + throw new ServiceException("The custom class must either implement A1Client.Factory or A1Client"); + } } else { - throw new ServiceException("The custom class must either implement A1Client.Factory or A1Client"); + throw new ServiceException("Custom adapter class is required to use A1ProtocolType.CUSTOM_PROTOCOL"); } } catch (ClassNotFoundException e) { throw new ServiceException("Could not find class: " + ric.getConfig().getCustomAdapterClass(), e); + } catch (NoSuchMethodException e) { + throw new ServiceException("Could not find the required constructor in class " + + ric.getConfig().getCustomAdapterClass(), e); + } catch (ServiceException e) { + throw e; } catch (Exception e) { throw new ServiceException("Cannot create custom adapter: " + ric.getConfig().getCustomAdapterClass(), e); } |