Throw exception if decryption/encryption fails
[aaa.git] / aaa-encrypt-service / impl / src / main / java / org / opendaylight / aaa / encrypt / impl / OSGiEncryptionServiceConfigurator.java
index 139d9ff6825fce23c3e3dbae33841171fd3726a3..eca84bc4d034309ec3daea46a06da69267a98ea3 100644 (file)
@@ -33,6 +33,7 @@ import org.opendaylight.yang.gen.v1.config.aaa.authn.encrypt.service.config.rev1
 import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.osgi.framework.FrameworkUtil;
+import org.osgi.service.component.ComponentException;
 import org.osgi.service.component.ComponentFactory;
 import org.osgi.service.component.ComponentInstance;
 import org.osgi.service.component.annotations.Activate;
@@ -83,7 +84,7 @@ public final class OSGiEncryptionServiceConfigurator implements DataListener<Aaa
         this.dataBroker = requireNonNull(dataBroker);
         this.factory = requireNonNull(factory);
         reg = dataBroker.registerDataListener(
-            DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION,
+            DataTreeIdentifier.of(LogicalDatastoreType.CONFIGURATION,
                 InstanceIdentifier.create(AaaEncryptServiceConfig.class)),
             this);
         LOG.debug("AAA Encryption Service configurator started");
@@ -196,8 +197,14 @@ public final class OSGiEncryptionServiceConfigurator implements DataListener<Aaa
         }
 
         disableInstance();
-        instance = factory.newInstance(FrameworkUtil.asDictionary(
-            AAAEncryptionServiceImpl.props(new EncryptServiceConfigImpl(newConfig))));
+        try {
+            instance = factory.newInstance(FrameworkUtil.asDictionary(
+                AAAEncryptionServiceImpl.props(new EncryptServiceConfigImpl(newConfig))));
+        } catch (ComponentException e) {
+            LOG.error("Failed to start Encryption Service", e);
+            return;
+        }
+
         current = newConfig;
         LOG.info("Encryption Service enabled");
     }