Split aaa-encryption-service api and impl 76/72176/6
authorRyan Goulding <ryandgoulding@gmail.com>
Tue, 22 May 2018 20:18:01 +0000 (16:18 -0400)
committerRyan Goulding <ryandgoulding@gmail.com>
Tue, 29 May 2018 12:50:25 +0000 (08:50 -0400)
The original contributor jammed api and impl into one bundle.  This is
bad practice for SOA, so this change separates out api and impl.  The
API class package remains the same for outside consumers (i.e., it is
left as org.opendaylight.aaa.encrypt instead of the normal convention
of org.opendaylight.aaa.encrypt.api).

Additionally, a maven-bundle-plugin instruction was added to explicitly
not export any impl bundle classes.  This is important to avoid possible
consumption from downstream consumers.

Change-Id: I0e2fca345501deaf9645b4b044dbc549b222c69b
Signed-off-by: Ryan Goulding <ryandgoulding@gmail.com>
24 files changed:
aaa-cert/pom.xml
aaa-encrypt-service/api/pom.xml [new file with mode: 0644]
aaa-encrypt-service/api/src/main/java/org/opendaylight/aaa/encrypt/AAAEncryptionService.java [new file with mode: 0644]
aaa-encrypt-service/api/src/main/java/org/opendaylight/aaa/encrypt/PKIUtil.java [moved from aaa-encrypt-service/src/main/java/org/opendaylight/aaa/encrypt/PKIUtil.java with 99% similarity]
aaa-encrypt-service/api/src/main/yang/aaa-encrypt-service-config.yang [moved from aaa-encrypt-service/src/main/yang/aaa-encrypt-service-config.yang with 100% similarity]
aaa-encrypt-service/api/src/test/java/org/opendaylight/aaa/encrypt/PKIUtilTest.java [moved from aaa-encrypt-service/src/test/java/org/opendaylight/aaa/encrypt/PKIUtilTest.java with 100% similarity]
aaa-encrypt-service/api/src/test/resources/dsa [moved from aaa-encrypt-service/src/test/resources/dsa with 100% similarity]
aaa-encrypt-service/api/src/test/resources/dsa_encrypted [moved from aaa-encrypt-service/src/test/resources/dsa_encrypted with 100% similarity]
aaa-encrypt-service/api/src/test/resources/ecdsa [moved from aaa-encrypt-service/src/test/resources/ecdsa with 100% similarity]
aaa-encrypt-service/api/src/test/resources/ecdsa_encrypted [moved from aaa-encrypt-service/src/test/resources/ecdsa_encrypted with 100% similarity]
aaa-encrypt-service/api/src/test/resources/rsa [moved from aaa-encrypt-service/src/test/resources/rsa with 100% similarity]
aaa-encrypt-service/api/src/test/resources/rsa_encrypted [moved from aaa-encrypt-service/src/test/resources/rsa_encrypted with 100% similarity]
aaa-encrypt-service/impl/pom.xml [new file with mode: 0644]
aaa-encrypt-service/impl/src/main/java/org/opendaylight/aaa/encrypt/impl/AAAEncryptionServiceImpl.java [moved from aaa-encrypt-service/src/main/java/org/opendaylight/aaa/encrypt/AAAEncryptionServiceImpl.java with 92% similarity]
aaa-encrypt-service/impl/src/main/java/org/opendaylight/aaa/encrypt/impl/MdsalUtils.java [moved from aaa-encrypt-service/src/main/java/org/opendaylight/aaa/encrypt/MdsalUtils.java with 98% similarity]
aaa-encrypt-service/impl/src/main/resources/initial/aaa-encrypt-service-config.xml [moved from aaa-encrypt-service/src/main/resources/initial/aaa-encrypt-service-config.xml with 100% similarity]
aaa-encrypt-service/impl/src/main/resources/org/opendaylight/blueprint/encryptservice.xml [moved from aaa-encrypt-service/src/main/resources/org/opendaylight/blueprint/encryptservice.xml with 94% similarity]
aaa-encrypt-service/impl/src/test/java/org/opendaylight/aaa/encrypt/impl/AAAEncryptServiceImplTest.java [moved from aaa-encrypt-service/src/test/java/org/opendaylight/aaa/encrypt/AAAEncryptServiceImplTest.java with 98% similarity]
aaa-encrypt-service/pom.xml
aaa-encrypt-service/src/main/java/org/opendaylight/aaa/encrypt/AAAEncryptionService.java [deleted file]
artifacts/pom.xml
dependency-check/pom.xml
features/odl-aaa-encryption-service/pom.xml
features/odl-aaa-encryption-service/src/main/feature/feature.xml

index 7fb152da97adb3c158332c924890add57d30047a..36f9985c26ef2979e1e62865b8176cd1f3a9c2ae 100644 (file)
@@ -18,7 +18,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.opendaylight.aaa</groupId>
   <artifactId>aaa-cert</artifactId>
-  <version>0.8.0-SNAPSHOT</version>
   <name>ODL :: aaa :: ${project.artifactId}</name>
   <packaging>bundle</packaging>
 
@@ -27,6 +26,14 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
       <groupId>org.opendaylight.aaa</groupId>
       <artifactId>aaa-encrypt-service</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-text</artifactId>
+    </dependency>
 
     <!-- Bouncy Castle dependency -->
     <dependency>
diff --git a/aaa-encrypt-service/api/pom.xml b/aaa-encrypt-service/api/pom.xml
new file mode 100644 (file)
index 0000000..35a266b
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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.opendaylight.aaa</groupId>
+    <artifactId>aaa-parent</artifactId>
+    <version>0.8.0-SNAPSHOT</version>
+    <relativePath>../../parent</relativePath>
+  </parent>
+
+  <groupId>org.opendaylight.aaa</groupId>
+  <artifactId>aaa-encrypt-service</artifactId>
+  <name>ODL :: aaa :: ${project.artifactId}</name>
+  <packaging>bundle</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.sshd</groupId>
+      <artifactId>sshd-core</artifactId>
+      <version>1.6.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.bouncycastle</groupId>
+      <artifactId>bcpkix-jdk15on</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.bouncycastle</groupId>
+      <artifactId>bcprov-jdk15on</artifactId>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/aaa-encrypt-service/api/src/main/java/org/opendaylight/aaa/encrypt/AAAEncryptionService.java b/aaa-encrypt-service/api/src/main/java/org/opendaylight/aaa/encrypt/AAAEncryptionService.java
new file mode 100644 (file)
index 0000000..8290357
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2016, 2017 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.aaa.encrypt;
+
+/**
+ * A generic encryption/decryption service for encrypting various data in ODL.
+ *
+ * @author - Sharon Aicler (saichler@gmail.com)
+ */
+public interface AAAEncryptionService {
+
+    /**
+     * Encrypt <code>data</code> using a 2-way encryption mechanism.
+     *
+     * @param data plaintext data
+     * @return an encrypted representation of <code>data</code>
+     */
+    String encrypt(String data);
+
+    /**
+     * Encrypt <code>data</code> using a 2-way encryption mechanism.
+     *
+     * @param data plaintext data
+     * @return an encrypted representation of <code>data</code>
+     */
+    byte[] encrypt(byte[] data);
+
+    /**
+     * Decrypt <code>data</code> using a 2-way decryption mechanism.
+     *
+     * @param encryptedData encrypted data
+     * @return plaintext <code>data</code>
+     */
+    String decrypt(String encryptedData);
+
+    /**
+     * Decrypt <code>data</code> using a 2-way decryption mechanism.
+     *
+     * @param encryptedData encrypted data
+     * @return plaintext <code>data</code>
+     */
+    byte[] decrypt(byte[] encryptedData);
+}
similarity index 99%
rename from aaa-encrypt-service/src/main/java/org/opendaylight/aaa/encrypt/PKIUtil.java
rename to aaa-encrypt-service/api/src/main/java/org/opendaylight/aaa/encrypt/PKIUtil.java
index 4578eb6f0c322b92afdca7ae338eef45d0581bb1..8b7b69082b6208b90d0d59af13c8e9eb4df53875 100644 (file)
@@ -44,6 +44,10 @@ import org.bouncycastle.openssl.PEMParser;
 import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter;
 import org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder;
 
+/**
+ * PKI related utilities.
+ */
+@Deprecated // TODO: abstract a service
 public class PKIUtil {
     private static final String KEY_FACTORY_TYPE_RSA = "RSA";
     private static final String KEY_FACTORY_TYPE_DSA = "DSA";
diff --git a/aaa-encrypt-service/impl/pom.xml b/aaa-encrypt-service/impl/pom.xml
new file mode 100644 (file)
index 0000000..1f07f97
--- /dev/null
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright © Inocybe Technologies and others. All rights reserved.
+
+This program and the accompanying materials are made available under the
+terms of the Eclipse Public License v1.0 which accompanies this distribution,
+and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<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.opendaylight.aaa</groupId>
+    <artifactId>aaa-parent</artifactId>
+    <version>0.8.0-SNAPSHOT</version>
+    <relativePath>../../parent</relativePath>
+  </parent>
+
+  <groupId>org.opendaylight.aaa</groupId>
+  <artifactId>aaa-encrypt-service-impl</artifactId>
+  <name>ODL :: aaa :: ${project.artifactId}</name>
+  <packaging>bundle</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.opendaylight.aaa</groupId>
+      <artifactId>aaa-encrypt-service</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-binding-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>sal-common-util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.dependencymanager</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-text</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.bouncycastle</groupId>
+      <artifactId>bcpkix-jdk15on</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.bouncycastle</groupId>
+      <artifactId>bcprov-jdk15on</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sshd</groupId>
+      <artifactId>sshd-core</artifactId>
+      <version>1.6.0</version>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.powermock</groupId>
+      <artifactId>powermock-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.powermock</groupId>
+      <artifactId>powermock-module-junit4</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.powermock</groupId>
+      <artifactId>powermock-api-mockito</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.powermock</groupId>
+      <artifactId>powermock-api-support</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Export-Package/>
+          </instructions>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>attach-artifacts</id>
+            <goals>
+              <goal>attach-artifact</goal>
+            </goals>
+            <phase>package</phase>
+            <configuration>
+              <artifacts>
+                <artifact>
+                  <file>${project.build.directory}/classes/initial/aaa-encrypt-service-config.xml</file>
+                  <type>xml</type>
+                  <classifier>config</classifier>
+                </artifact>
+              </artifacts>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
similarity index 92%
rename from aaa-encrypt-service/src/main/java/org/opendaylight/aaa/encrypt/AAAEncryptionServiceImpl.java
rename to aaa-encrypt-service/impl/src/main/java/org/opendaylight/aaa/encrypt/impl/AAAEncryptionServiceImpl.java
index 15237ba027d8a5052ab4126ade0167c5b5340995..890a8808f5e34f6c957602efd26c14e4a221d9b4 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.aaa.encrypt;
+package org.opendaylight.aaa.encrypt.impl;
 
 import java.io.File;
 import java.io.IOException;
@@ -37,6 +37,7 @@ import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 import org.apache.commons.lang3.RandomStringUtils;
+import org.opendaylight.aaa.encrypt.AAAEncryptionService;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.yang.gen.v1.config.aaa.authn.encrypt.service.config.rev160915.AaaEncryptServiceConfig;
@@ -47,8 +48,10 @@ import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.xml.sax.SAXException;
 
-/*
- *  @author - Sharon Aicler (saichler@gmail.com)
+/**
+ * Provides a basic encryption service implementation with configuration knobs.
+ *
+ * @author - Sharon Aicler (saichler@gmail.com)
  */
 @Deprecated
 public class AAAEncryptionServiceImpl implements AAAEncryptionService {
@@ -154,33 +157,33 @@ public class AAAEncryptionServiceImpl implements AAAEncryptionService {
     }
 
     @Override
-    public String decrypt(String encData) {
-        if (key == null || encData == null || encData.length() == 0) {
-            LOG.warn("String {} was not decrypted.", encData);
-            return encData;
+    public String decrypt(String encryptedData) {
+        if (key == null || encryptedData == null || encryptedData.length() == 0) {
+            LOG.warn("String {} was not decrypted.", encryptedData);
+            return encryptedData;
         }
         try {
-            byte[] cryptobytes = DatatypeConverter.parseBase64Binary(encData);
+            byte[] cryptobytes = DatatypeConverter.parseBase64Binary(encryptedData);
             byte[] clearbytes = decryptCipher.doFinal(cryptobytes);
             return new String(clearbytes, Charset.defaultCharset());
         } catch (IllegalBlockSizeException | BadPaddingException e) {
             LOG.error("Failed to decrypt encoded data", e);
         }
-        return encData;
+        return encryptedData;
     }
 
     @Override
-    public byte[] decrypt(byte[] encData) {
-        if (encData == null) {
-            LOG.warn("encData is null.");
-            return encData;
+    public byte[] decrypt(byte[] encryptedData) {
+        if (encryptedData == null) {
+            LOG.warn("encryptedData is null.");
+            return encryptedData;
         }
         try {
-            return decryptCipher.doFinal(encData);
+            return decryptCipher.doFinal(encryptedData);
         } catch (IllegalBlockSizeException | BadPaddingException e) {
             LOG.error("Failed to decrypt encoded data", e);
         }
-        return encData;
+        return encryptedData;
     }
 
     private void updateEncrySrvConfig(String newPwd, String newSalt) {
similarity index 98%
rename from aaa-encrypt-service/src/main/java/org/opendaylight/aaa/encrypt/MdsalUtils.java
rename to aaa-encrypt-service/impl/src/main/java/org/opendaylight/aaa/encrypt/impl/MdsalUtils.java
index 95cb2c490258380b314b875123687e93132867ed..c82ee6e4cc570bf555405844191add4f3e2c0010 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.aaa.encrypt;
+package org.opendaylight.aaa.encrypt.impl;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.CheckedFuture;
similarity index 94%
rename from aaa-encrypt-service/src/main/resources/org/opendaylight/blueprint/encryptservice.xml
rename to aaa-encrypt-service/impl/src/main/resources/org/opendaylight/blueprint/encryptservice.xml
index 65fb91a413663dc7a781778e7dba9352aa9eacbe..b5feca599f1711d2c73ebc5fe3309e3821c1e048 100644 (file)
@@ -8,7 +8,7 @@
         binding-class="org.opendaylight.yang.gen.v1.config.aaa.authn.encrypt.service.config.rev160915.AaaEncryptServiceConfig">
   </odl:clustered-app-config>
 
-  <bean id="encryptService" class="org.opendaylight.aaa.encrypt.AAAEncryptionServiceImpl">
+  <bean id="encryptService" class="org.opendaylight.aaa.encrypt.impl.AAAEncryptionServiceImpl">
     <argument ref="encryptConfig"/>
     <argument ref="dataBroker"/>
   </bean>
similarity index 98%
rename from aaa-encrypt-service/src/test/java/org/opendaylight/aaa/encrypt/AAAEncryptServiceImplTest.java
rename to aaa-encrypt-service/impl/src/test/java/org/opendaylight/aaa/encrypt/impl/AAAEncryptServiceImplTest.java
index a268e8b98625ec60b17ebb71c880dc5d7133b924..40a024ef4ba1131bc841404447ccd5758c9b2607 100644 (file)
@@ -5,7 +5,7 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.aaa.encrypt;
+package org.opendaylight.aaa.encrypt.impl;
 
 import static org.mockito.Mockito.mock;
 
index 0a99f0baf1d8a10978856783e81bea60f2d1a549..bc07e218886b47273f60a119b89d78ff34f15d46 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright © 2018 Inocybe Technologies and others. All rights reserved.
+This program and the accompanying materials are made available under the
+terms of the Eclipse Public License v1.0 which accompanies this distribution,
+and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
+-->
 <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">
+         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.opendaylight.aaa</groupId>
-    <artifactId>aaa-parent</artifactId>
-    <version>0.8.0-SNAPSHOT</version>
-    <relativePath>../parent</relativePath>
+    <groupId>org.opendaylight.odlparent</groupId>
+    <artifactId>odlparent</artifactId>
+    <version>3.1.0</version>
+    <relativePath/>
   </parent>
 
   <groupId>org.opendaylight.aaa</groupId>
-  <artifactId>aaa-encrypt-service</artifactId>
+  <artifactId>aaa-encryption-service-aggregator</artifactId>
   <version>0.8.0-SNAPSHOT</version>
   <name>ODL :: aaa :: ${project.artifactId}</name>
-  <packaging>bundle</packaging>
+  <packaging>pom</packaging>
 
-  <dependencies>
-        <!--Yang Binding -->
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-binding-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-common-util</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>org.apache.felix.dependencymanager</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-text</artifactId>
-    </dependency>
-        <dependency>
-            <groupId>org.bouncycastle</groupId>
-            <artifactId>bcpkix-jdk15on</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.bouncycastle</groupId>
-            <artifactId>bcprov-jdk15on</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sshd</groupId>
-            <artifactId>sshd-core</artifactId>
-            <version>1.6.0</version>
-        </dependency>
-        <!-- Testing Dependencies -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-module-junit4</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-api-mockito</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.powermock</groupId>
-      <artifactId>powermock-api-support</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
+  <modules>
+    <module>api</module>
+    <module>impl</module>
+  </modules>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>attach-artifacts</id>
-            <goals>
-              <goal>attach-artifact</goal>
-            </goals>
-            <phase>package</phase>
-            <configuration>
-              <artifacts>
-                <artifact>
-                  <file>${project.build.directory}/classes/initial/aaa-encrypt-service-config.xml</file>
-                  <type>xml</type>
-                  <classifier>config</classifier>
-                </artifact>
-              </artifacts>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-                <!-- override default version so we don't use bnd 2.3.0 when embedding sqlite -->
-        <extensions>true</extensions>
-        <configuration>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
 </project>
diff --git a/aaa-encrypt-service/src/main/java/org/opendaylight/aaa/encrypt/AAAEncryptionService.java b/aaa-encrypt-service/src/main/java/org/opendaylight/aaa/encrypt/AAAEncryptionService.java
deleted file mode 100644 (file)
index 4d6b338..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2016, 2017 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.aaa.encrypt;
-
-/*
- *  @author - Sharon Aicler (saichler@gmail.com)
- */
-
-public interface AAAEncryptionService {
-
-    String encrypt(String data);
-
-    byte[] encrypt(byte[] data);
-
-    String decrypt(String encData);
-
-    byte[] decrypt(byte[] encData);
-}
index a0c648019ac84f3ae6c4736cb462398791240c77..50d707720fc6c24e789ed9b9f85f1eafc2b9c8fc 100644 (file)
                 <artifactId>aaa-encrypt-service</artifactId>
                 <version>${project.version}</version>
             </dependency>
+            <dependency>
+                <groupId>org.opendaylight.aaa</groupId>
+                <artifactId>aaa-encrypt-service-impl</artifactId>
+                <version>${project.version}</version>
+            </dependency>
             <dependency>
                 <groupId>${project.groupId}</groupId>
-                <artifactId>aaa-encrypt-service</artifactId>
+                <artifactId>aaa-encrypt-service-impl</artifactId>
                 <version>${project.version}</version>
                 <type>xml</type>
                 <classifier>config</classifier>
index 5c3269361b981e4858ea7f9f486ded633524ce20..95f3850e91eeeaf7be9e04fee2d760bc59405ca1 100644 (file)
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>aaa-encrypt-service</artifactId>
-            <classifier>config</classifier>
-            <type>xml</type>
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>aaa-encrypt-service</artifactId>
+            <artifactId>aaa-encrypt-service-impl</artifactId>
+            <classifier>config</classifier>
+            <type>xml</type>
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
             <groupId>${project.groupId}</groupId>
             <artifactId>aaa-filterchain</artifactId>
         </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>aaa-password-service-api</artifactId>
+        </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>aaa-shiro-api</artifactId>
             <classifier>features</classifier>
             <type>xml</type>
         </dependency>
+        <dependency>
+            <groupId>${project.groupId}.web</groupId>
+            <artifactId>servlet-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}.web</groupId>
+            <artifactId>servlet-jersey2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}.web</groupId>
+            <artifactId>web-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}.web</groupId>
+            <artifactId>web-osgi-impl</artifactId>
+        </dependency>
 
     </dependencies>
 
index e08c53a4ae1d732b75b8b8fad2295a8dfb830cd9..698b9ced1000541db254bcaf491ef6878de82093 100644 (file)
 
     <name>ODL :: aaa :: ${project.artifactId}</name>
 
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>aaa-artifacts</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
     <dependencies>
         <!-- MD-SAL -->
         <dependency>
         <dependency>
             <groupId>org.opendaylight.aaa</groupId>
             <artifactId>aaa-encrypt-service</artifactId>
-            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.aaa</groupId>
+            <artifactId>aaa-encrypt-service-impl</artifactId>
         </dependency>
         <dependency>
             <!-- finalname="etc/opendaylight/datastore/initial/config/aaa-encrypt-service-config.xml" -->
             <groupId>org.opendaylight.aaa</groupId>
-            <artifactId>aaa-encrypt-service</artifactId>
-            <version>${project.version}</version>
+            <artifactId>aaa-encrypt-service-impl</artifactId>
             <type>xml</type>
             <classifier>config</classifier>
         </dependency>
index 32137d02b1f390705e8f93de9a01308078f3a276..4fd17a4ee4e97c055094028cdadf149800f6cb10 100644 (file)
@@ -9,7 +9,7 @@
 <features name="odl-aaa-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0">
     <feature name="odl-aaa-encryption-service" version="${project.version}">
         <configfile finalname="etc/opendaylight/datastore/initial/config/aaa-encrypt-service-config.xml">
-            mvn:org.opendaylight.aaa/aaa-encrypt-service/${project.version}/xml/config
+            mvn:org.opendaylight.aaa/aaa-encrypt-service-impl/${project.version}/xml/config
         </configfile>
     </feature>
 </features>