diff --git a/appc-common/pom.xml b/appc-common/pom.xml
index e0182b3..26f4d6b 100644
--- a/appc-common/pom.xml
+++ b/appc-common/pom.xml
@@ -1,7 +1,7 @@
 <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.openecomp.appc</groupId>
+    <groupId>org.onap.appc</groupId>
     <artifactId>appc</artifactId>
 		<version>1.3.0-SNAPSHOT</version>
   </parent>
@@ -130,7 +130,7 @@
           <instructions>
             <Bundle-SymbolicName>appc-common</Bundle-SymbolicName>
             <Export-Package>
-              org.openecomp.appc.*, com.att.eelf.*, ch.qos.logback.*, org.jasypt.*
+              org.onap.appc.*, com.att.eelf.*, ch.qos.logback.*, org.jasypt.*
             </Export-Package>
             <Import-Package>*;resolution:=optional</Import-Package>
             <Embed-Dependency>eelf-core, logback-core, logback-classic, jasypt</Embed-Dependency>
@@ -153,7 +153,7 @@
             <configuration>
               <resources>
                 <resource>
-                  <messageClass>org.openecomp.appc.i18n.Msg</messageClass>
+                  <messageClass>org.onap.appc.i18n.Msg</messageClass>
                 </resource>
               </resources>
             </configuration>
@@ -169,7 +169,7 @@
               <outputFile>messages.html</outputFile>
               <resources>
                 <resource>
-                  <messageClass>org.openecomp.appc.i18n.Msg</messageClass>
+                  <messageClass>org.onap.appc.i18n.Msg</messageClass>
                   <header><![CDATA[<p> <ac:macro ac:name="toc" /> </p>]]></header>
                 </resource>
               </resources>
@@ -178,7 +178,7 @@
         </executions>
         <dependencies>
           <dependency>
-            <groupId>org.openecomp.appc</groupId>
+            <groupId>org.onap.appc</groupId>
             <artifactId>appc-common</artifactId>
             <version>${project.version}</version>
           </dependency>
diff --git a/appc-common/src/main/java/org/openecomp/appc/CmdLine.java b/appc-common/src/main/java/org/openecomp/appc/CmdLine.java
index 699edc7..d63bd87 100644
--- a/appc-common/src/main/java/org/openecomp/appc/CmdLine.java
+++ b/appc-common/src/main/java/org/openecomp/appc/CmdLine.java
@@ -22,9 +22,9 @@
  * ============LICENSE_END=========================================================
  */
 
-    package org.openecomp.appc;
+    package org.onap.appc;
 
-import org.openecomp.appc.encryption.EncryptionTool;
+import org.onap.appc.encryption.EncryptionTool;
 
 public class CmdLine {
 
diff --git a/appc-common/src/main/java/org/openecomp/appc/Constants.java b/appc-common/src/main/java/org/openecomp/appc/Constants.java
index 5e59971..e030b64 100644
--- a/appc-common/src/main/java/org/openecomp/appc/Constants.java
+++ b/appc-common/src/main/java/org/openecomp/appc/Constants.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc;
+package org.onap.appc;
 
 /**
  * This class contains the definitions of all constant values used in the APPC provider, adapters, and other components.
@@ -91,27 +91,27 @@
     /**
      * The name of the property that contains the service request enumerated value in the graph's context
      */
-    public static final String CONTEXT_SERVICE = "org.openecomp.appc.service";
+    public static final String CONTEXT_SERVICE = "org.onap.appc.service";
 
     /**
      * The name of the property that contains the VM id value in the graph's context
      */
-    public static final String CONTEXT_VMID = "org.openecomp.appc.vmid";
+    public static final String CONTEXT_VMID = "org.onap.appc.vmid";
 
     /**
      * The name of the property that contains the VM id value in the graph's context
      */
-    public static final String CONTEXT_IDENTITY_URL = "org.openecomp.appc.identity.url";
+    public static final String CONTEXT_IDENTITY_URL = "org.onap.appc.identity.url";
 
     /**
      * The name of the property that contains the service request id value in the graph's context
      */
-    public static final String CONTEXT_REQID = "org.openecomp.appc.reqid";
+    public static final String CONTEXT_REQID = "org.onap.appc.reqid";
 
     /**
      * The name of the property that indicates which method of the IaaS adapter to call
      */
-    public static final String CONTEXT_ACTION = "org.openecomp.appc.action";
+    public static final String CONTEXT_ACTION = "org.onap.appc.action";
 
     /**
      * The enumerated value for restart of a VM. This is a constant for one possible value of CONTEXT_SERVICE.
@@ -126,44 +126,44 @@
     /**
      * The name of the adapter. We get the name from a property file so that it can be changed easily if needed.
      */
-    public static final String PROPERTY_ADAPTER_NAME = "org.openecomp.appc.provider.adaptor.name";
+    public static final String PROPERTY_ADAPTER_NAME = "org.onap.appc.provider.adaptor.name";
 
     /**
      * The minimum number of contexts to cache in each provider/tenant pool
      */
-    public static final String PROPERTY_MIN_POOL_SIZE = "org.openecomp.appc.provider.min.pool";
+    public static final String PROPERTY_MIN_POOL_SIZE = "org.onap.appc.provider.min.pool";
 
     /**
      * The maximum number of contexts to cache in each provider/tenant pool
      */
-    public static final String PROPERTY_MAX_POOL_SIZE = "org.openecomp.appc.provider.max.pool";
+    public static final String PROPERTY_MAX_POOL_SIZE = "org.onap.appc.provider.max.pool";
 
     /**
      * The amount of time, in seconds, that the application waits for a change of state of a server to a known valid
      * state before giving up and failing the request.
      */
-    public static final String PROPERTY_SERVER_STATE_CHANGE_TIMEOUT = "org.openecomp.appc.server.state.change.timeout";
+    public static final String PROPERTY_SERVER_STATE_CHANGE_TIMEOUT = "org.onap.appc.server.state.change.timeout";
 
     /**
      * The amount of time, in seconds, between subsequent polls to the openstack provider to update the state of a
      * resource
      */
-    public static final String PROPERTY_OPENSTACK_POLL_INTERVAL = "org.openecomp.appc.openstack.poll.interval";
+    public static final String PROPERTY_OPENSTACK_POLL_INTERVAL = "org.onap.appc.openstack.poll.interval";
 
     /**
      * The amount of time, in seconds, to wait between retry attempts when a connection to a provider fails.
      */
-    public static final String PROPERTY_RETRY_DELAY = "org.openecomp.appc.provider.retry.delay";
+    public static final String PROPERTY_RETRY_DELAY = "org.onap.appc.provider.retry.delay";
 
     /**
      * The maximum number of times a connection retry will be attempted before the application fails the request
      */
-    public static final String PROPERTY_RETRY_LIMIT = "org.openecomp.appc.provider.retry.limit";
+    public static final String PROPERTY_RETRY_LIMIT = "org.onap.appc.provider.retry.limit";
     /**
      * The amount of time, in seconds, that the application waits for a change of state of a stacj to a known valid
      * state before giving up and failing the request.
      */
-    public static final String PROPERTY_STACK_STATE_CHANGE_TIMEOUT ="org.openecomp.appc.stack.state.change.timeout" ;
+    public static final String PROPERTY_STACK_STATE_CHANGE_TIMEOUT ="org.onap.appc.stack.state.change.timeout" ;
 
     @SuppressWarnings("nls")
     public static final String STATUS_GETTER = "status-getter";
diff --git a/appc-common/src/main/java/org/openecomp/appc/cache/CacheStrategies.java b/appc-common/src/main/java/org/openecomp/appc/cache/CacheStrategies.java
index 196b645..fadf9cb 100644
--- a/appc-common/src/main/java/org/openecomp/appc/cache/CacheStrategies.java
+++ b/appc-common/src/main/java/org/openecomp/appc/cache/CacheStrategies.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.cache;
+package org.onap.appc.cache;
 
 /**
  * Enum of CacheStrategies
diff --git a/appc-common/src/main/java/org/openecomp/appc/cache/CacheStrategy.java b/appc-common/src/main/java/org/openecomp/appc/cache/CacheStrategy.java
index e077081..af91bb2 100644
--- a/appc-common/src/main/java/org/openecomp/appc/cache/CacheStrategy.java
+++ b/appc-common/src/main/java/org/openecomp/appc/cache/CacheStrategy.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.cache;
+package org.onap.appc.cache;
 
 /**
  * Interface of CacheStrategy
diff --git a/appc-common/src/main/java/org/openecomp/appc/cache/MetadataCache.java b/appc-common/src/main/java/org/openecomp/appc/cache/MetadataCache.java
index 8196e8e..ea0cad2 100644
--- a/appc-common/src/main/java/org/openecomp/appc/cache/MetadataCache.java
+++ b/appc-common/src/main/java/org/openecomp/appc/cache/MetadataCache.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.cache;
+package org.onap.appc.cache;
 
 /**
  * Interface of MetadataCache
diff --git a/appc-common/src/main/java/org/openecomp/appc/cache/impl/LRUCache.java b/appc-common/src/main/java/org/openecomp/appc/cache/impl/LRUCache.java
index b97a5f6..b82552f 100644
--- a/appc-common/src/main/java/org/openecomp/appc/cache/impl/LRUCache.java
+++ b/appc-common/src/main/java/org/openecomp/appc/cache/impl/LRUCache.java
@@ -22,12 +22,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.cache.impl;
+package org.onap.appc.cache.impl;
 
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import org.openecomp.appc.cache.CacheStrategy;
+import org.onap.appc.cache.CacheStrategy;
 
 /**
  * LRU cache implements CacheStategy<K, V>
diff --git a/appc-common/src/main/java/org/openecomp/appc/cache/impl/MetadataCacheFactory.java b/appc-common/src/main/java/org/openecomp/appc/cache/impl/MetadataCacheFactory.java
index 91ad48f..c140c6e 100644
--- a/appc-common/src/main/java/org/openecomp/appc/cache/impl/MetadataCacheFactory.java
+++ b/appc-common/src/main/java/org/openecomp/appc/cache/impl/MetadataCacheFactory.java
@@ -22,10 +22,10 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.cache.impl;
+package org.onap.appc.cache.impl;
 
-import org.openecomp.appc.cache.CacheStrategies;
-import org.openecomp.appc.cache.MetadataCache;
+import org.onap.appc.cache.CacheStrategies;
+import org.onap.appc.cache.MetadataCache;
 
 /**
  * Metadata Cache Factory
diff --git a/appc-common/src/main/java/org/openecomp/appc/cache/impl/MetadataCacheImpl.java b/appc-common/src/main/java/org/openecomp/appc/cache/impl/MetadataCacheImpl.java
index 249a97c..ca225ad 100644
--- a/appc-common/src/main/java/org/openecomp/appc/cache/impl/MetadataCacheImpl.java
+++ b/appc-common/src/main/java/org/openecomp/appc/cache/impl/MetadataCacheImpl.java
@@ -22,11 +22,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.cache.impl;
+package org.onap.appc.cache.impl;
 
-import org.openecomp.appc.cache.CacheStrategies;
-import org.openecomp.appc.cache.CacheStrategy;
-import org.openecomp.appc.cache.MetadataCache;
+import org.onap.appc.cache.CacheStrategies;
+import org.onap.appc.cache.CacheStrategy;
+import org.onap.appc.cache.MetadataCache;
 
 /**
  * Implementation of MetadataCache
diff --git a/appc-common/src/main/java/org/openecomp/appc/concurrent/Signal.java b/appc-common/src/main/java/org/openecomp/appc/concurrent/Signal.java
index 93da240..5d439d1 100644
--- a/appc-common/src/main/java/org/openecomp/appc/concurrent/Signal.java
+++ b/appc-common/src/main/java/org/openecomp/appc/concurrent/Signal.java
@@ -22,14 +22,14 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.concurrent;
+package org.onap.appc.concurrent;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.concurrent.TimeoutException;
 
-import org.openecomp.appc.util.StringHelper;
+import org.onap.appc.util.StringHelper;
 
 /**
  * This class is used to synchronize signaling of status between threads.
diff --git a/appc-common/src/main/java/org/openecomp/appc/configuration/Configuration.java b/appc-common/src/main/java/org/openecomp/appc/configuration/Configuration.java
index 870a73c..a0acf12 100644
--- a/appc-common/src/main/java/org/openecomp/appc/configuration/Configuration.java
+++ b/appc-common/src/main/java/org/openecomp/appc/configuration/Configuration.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.configuration;
+package org.onap.appc.configuration;
 
 import java.util.Properties;
 
@@ -40,12 +40,12 @@
  */
 public interface Configuration {
 
-    String PROPERTY_BOOTSTRAP_FILE_NAME = "org_openecomp_appc_bootstrap_file"; //
+    String PROPERTY_BOOTSTRAP_FILE_NAME = "org_onap_appc_bootstrap_file"; //
     String DEFAULT_BOOTSTRAP_FILE_NAME = "appc.properties"; 
-    String PROPERTY_BOOTSTRAP_FILE_PATH = "org_openecomp_appc_bootstrap_path"; //
+    String PROPERTY_BOOTSTRAP_FILE_PATH = "org_onap_appc_bootstrap_path"; //
     String DEFAULT_BOOTSTRAP_FILE_PATH = "/opt/openecomp/appc/data/properties,${user.home},etc,../etc";
-    String PROPERTY_RESOURCE_BUNDLES = "org.openecomp.appc.resources"; 
-    String DEFAULT_RESOURCE_BUNDLES = "org/openecomp/appc/i18n/MessageResources";
+    String PROPERTY_RESOURCE_BUNDLES = "org.onap.appc.resources"; 
+    String DEFAULT_RESOURCE_BUNDLES = "org/onap/appc/i18n/MessageResources";
 
    /**
      * This method is called to obtain a property expressed as a boolean value (true or false). The standard rules for
diff --git a/appc-common/src/main/java/org/openecomp/appc/configuration/ConfigurationFactory.java b/appc-common/src/main/java/org/openecomp/appc/configuration/ConfigurationFactory.java
index fa8b5ee..ee26488 100644
--- a/appc-common/src/main/java/org/openecomp/appc/configuration/ConfigurationFactory.java
+++ b/appc-common/src/main/java/org/openecomp/appc/configuration/ConfigurationFactory.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.configuration;
+package org.onap.appc.configuration;
 
 import java.io.BufferedInputStream;
 import java.io.File;
@@ -37,7 +37,7 @@
 import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
 
-import org.openecomp.appc.i18n.Msg;
+import org.onap.appc.i18n.Msg;
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
 import com.att.eelf.i18n.EELFResourceManager;
@@ -84,11 +84,11 @@
  * to define the name and path. These are:
  * </p>
  * <dl>
- * <dt>org.openecomp.appc.bootstrap.file</dt>
+ * <dt>org.onap.appc.bootstrap.file</dt>
  * <dd>This property defines the name of the file that will be loaded. If not specified, the default value is
  * "appc.properties". This can be specified in either (or both) the default properties or the command line. The command
  * line specification will always override.</dd>
- * <dt>org.openecomp.appc.bootstrap.path</dt>
+ * <dt>org.onap.appc.bootstrap.path</dt>
  * <dd>This is a comma-delimited (,) path of directories to be searched to locate the specified file. The first
  * occurrence of the file is the one loaded, and no additional searching is performed. The path can be specified in
  * either, or both, the default values and the command line specification. If specified on the command line, the value
@@ -116,7 +116,7 @@
     /**
      * The default properties resource to be loaded
      */
-    private static final String DEFAULT_PROPERTIES = "org/openecomp/appc/default.properties";
+    private static final String DEFAULT_PROPERTIES = "org/onap/appc/default.properties";
 
     /**
      * This collection allows for special configurations to be created and maintained, organized by some identification
diff --git a/appc-common/src/main/java/org/openecomp/appc/configuration/DefaultConfiguration.java b/appc-common/src/main/java/org/openecomp/appc/configuration/DefaultConfiguration.java
index 6353849..3e86c07 100644
--- a/appc-common/src/main/java/org/openecomp/appc/configuration/DefaultConfiguration.java
+++ b/appc-common/src/main/java/org/openecomp/appc/configuration/DefaultConfiguration.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.configuration;
+package org.onap.appc.configuration;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -39,8 +39,8 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.openecomp.appc.encryption.EncryptionTool;
-import org.openecomp.appc.util.UnmodifiableProperties;
+import org.onap.appc.encryption.EncryptionTool;
+import org.onap.appc.util.UnmodifiableProperties;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -208,7 +208,7 @@
      * @param key          The property key
      * @param defaultValue The default value to be returned if the property does not exist
      * @return The value of the property expressed as a boolean, or false if it does not exist.
-     * @see org.openecomp.appc.configuration.Configuration#getBooleanProperty(java.lang.String, boolean)
+     * @see org.onap.appc.configuration.Configuration#getBooleanProperty(java.lang.String, boolean)
      */
     @Override
     public boolean getBooleanProperty(String key, boolean defaultValue) {
@@ -223,7 +223,7 @@
      *
      * @param key The property to retrieve
      * @return The value of the property, or 0.0 if not found
-     * @see org.openecomp.appc.configuration.Configuration#getDoubleProperty(java.lang.String)
+     * @see org.onap.appc.configuration.Configuration#getDoubleProperty(java.lang.String)
      */
     @SuppressWarnings("nls")
     @Override
@@ -241,7 +241,7 @@
      * @param key          The key of the property
      * @param defaultValue The default value to be returned if the property does not exist
      * @return The string value, or null if it does not exist.
-     * @see org.openecomp.appc.configuration.Configuration#getDoubleProperty(java.lang.String, double)
+     * @see org.onap.appc.configuration.Configuration#getDoubleProperty(java.lang.String, double)
      */
     @Override
     public double getDoubleProperty(String key, double defaultValue) {
@@ -257,7 +257,7 @@
      *
      * @param key The property name to retrieve.
      * @return The value of the property, or 0 if it does not exist or is invalid.
-     * @see org.openecomp.appc.configuration.Configuration#getIntegerProperty(java.lang.String)
+     * @see org.onap.appc.configuration.Configuration#getIntegerProperty(java.lang.String)
      */
     @SuppressWarnings("nls")
     @Override
@@ -276,7 +276,7 @@
      * @param key          The property name to retrieve.
      * @param defaultValue The default value to be returned if the property does not exist
      * @return The value of the property, or 0 if it does not exist or is invalid.
-     * @see org.openecomp.appc.configuration.Configuration#getIntegerProperty(java.lang.String, int)
+     * @see org.onap.appc.configuration.Configuration#getIntegerProperty(java.lang.String, int)
      */
     @Override
     public int getIntegerProperty(String key, int defaultValue) {
@@ -292,7 +292,7 @@
      * @param key The key of the property desired.
      * @return The value of the property expressed as an integer long value, or zero if the property does not exist or
      * is not a valid integer long.
-     * @see org.openecomp.appc.configuration.Configuration#getLongProperty(java.lang.String)
+     * @see org.onap.appc.configuration.Configuration#getLongProperty(java.lang.String)
      */
     @SuppressWarnings("nls")
     @Override
@@ -312,7 +312,7 @@
      * @param defaultValue the value to be returned if the property is not valid or does not exist.
      * @return The value of the property expressed as an integer long value, or the default value if the property does
      * not exist or is not a valid integer long.
-     * @see org.openecomp.appc.configuration.Configuration#getLongProperty(java.lang.String, long)
+     * @see org.onap.appc.configuration.Configuration#getLongProperty(java.lang.String, long)
      */
     @Override
     public long getLongProperty(String key, long defaultValue) {
@@ -328,7 +328,7 @@
      * properties.
      *
      * @return An unmodifiable properties object.
-     * @see org.openecomp.appc.configuration.Configuration#getProperties()
+     * @see org.onap.appc.configuration.Configuration#getProperties()
      */
     @Override
     public Properties getProperties() {
@@ -356,7 +356,7 @@
      * @param key          The key of the property
      * @param defaultValue The default value to be returned if the property does not exist
      * @return The string value, or null if it does not exist.
-     * @see org.openecomp.appc.configuration.Configuration#getProperty(java.lang.String, java.lang.String)
+     * @see org.onap.appc.configuration.Configuration#getProperty(java.lang.String, java.lang.String)
      */
     @Override
     public String getProperty(String key, String defaultValue) {
@@ -396,7 +396,7 @@
      *
      * @param key The property to be checked
      * @return True if the value is a boolean constant, or false if it does not exist or is not a correct string
-     * @see org.openecomp.appc.configuration.Configuration#isValidBoolean(java.lang.String)
+     * @see org.onap.appc.configuration.Configuration#isValidBoolean(java.lang.String)
      */
     @SuppressWarnings("nls")
     @Override
@@ -415,7 +415,7 @@
      * @param key The property to be examined
      * @return True if the property is a valid representation of a double, or false if it does not exist or contains
      * illegal characters.
-     * @see org.openecomp.appc.configuration.Configuration#isValidDouble(java.lang.String)
+     * @see org.onap.appc.configuration.Configuration#isValidDouble(java.lang.String)
      */
     @Override
     public boolean isValidDouble(String key) {
@@ -437,7 +437,7 @@
      * @param key The key of the property to check
      * @return True if the value is a valid integer string, or false if it does not exist or contains illegal
      * characters.
-     * @see org.openecomp.appc.configuration.Configuration#isValidInteger(java.lang.String)
+     * @see org.onap.appc.configuration.Configuration#isValidInteger(java.lang.String)
      */
     @Override
     public boolean isValidInteger(String key) {
@@ -459,7 +459,7 @@
      * @param key The property to be checked
      * @return True if the property is a valid representation of an integer long value, and false if it either does not
      * exist or is not valid.
-     * @see org.openecomp.appc.configuration.Configuration#isValidLong(java.lang.String)
+     * @see org.onap.appc.configuration.Configuration#isValidLong(java.lang.String)
      */
     @Override
     public boolean isValidLong(String key) {
@@ -493,7 +493,7 @@
      *
      * @param props An optional Properties object to be merged into the configuration, replacing any same-named
      *              properties.
-     * @see org.openecomp.appc.configuration.Configuration#setProperties(java.util.Properties)
+     * @see org.onap.appc.configuration.Configuration#setProperties(java.util.Properties)
      */
     @Override
     public void setProperties(Properties props) {
@@ -508,7 +508,7 @@
      *
      * @param key   The key of the property to be defined
      * @param value The value of the property to be defined
-     * @see org.openecomp.appc.configuration.Configuration#setProperty(java.lang.String, java.lang.String)
+     * @see org.onap.appc.configuration.Configuration#setProperty(java.lang.String, java.lang.String)
      */
     @Override
     public void setProperty(String key, String value) {
diff --git a/appc-common/src/main/java/org/openecomp/appc/configuration/package.html b/appc-common/src/main/java/org/openecomp/appc/configuration/package.html
index 131ba5c..c6889da 100644
--- a/appc-common/src/main/java/org/openecomp/appc/configuration/package.html
+++ b/appc-common/src/main/java/org/openecomp/appc/configuration/package.html
@@ -171,4 +171,4 @@
   </p>
 </body>
 </html>
->>>>>>> app-controller/master:appc-common/src/main/java/org/openecomp/appc/configuration/package.html
+>>>>>>> app-controller/master:appc-common/src/main/java/org/onap/appc/configuration/package.html
diff --git a/appc-common/src/main/java/org/openecomp/appc/encryption/EncryptionException.java b/appc-common/src/main/java/org/openecomp/appc/encryption/EncryptionException.java
index 5ee6fa4..5199335 100644
--- a/appc-common/src/main/java/org/openecomp/appc/encryption/EncryptionException.java
+++ b/appc-common/src/main/java/org/openecomp/appc/encryption/EncryptionException.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.encryption;
+package org.onap.appc.encryption;
 
 public class EncryptionException extends RuntimeException {
 
diff --git a/appc-common/src/main/java/org/openecomp/appc/encryption/EncryptionTool.java b/appc-common/src/main/java/org/openecomp/appc/encryption/EncryptionTool.java
index 405487e..5d6d7ab 100644
--- a/appc-common/src/main/java/org/openecomp/appc/encryption/EncryptionTool.java
+++ b/appc-common/src/main/java/org/openecomp/appc/encryption/EncryptionTool.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.encryption;
+package org.onap.appc.encryption;
 
 import java.security.Provider;
 import java.security.Provider.Service;
diff --git a/appc-common/src/main/java/org/openecomp/appc/encryption/HexHelper.java b/appc-common/src/main/java/org/openecomp/appc/encryption/HexHelper.java
index 8d149ab..250a17e 100644
--- a/appc-common/src/main/java/org/openecomp/appc/encryption/HexHelper.java
+++ b/appc-common/src/main/java/org/openecomp/appc/encryption/HexHelper.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.encryption;
+package org.onap.appc.encryption;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/appc-common/src/main/java/org/openecomp/appc/exceptions/APPCException.java b/appc-common/src/main/java/org/openecomp/appc/exceptions/APPCException.java
index 314d0a6..0efed76 100644
--- a/appc-common/src/main/java/org/openecomp/appc/exceptions/APPCException.java
+++ b/appc-common/src/main/java/org/openecomp/appc/exceptions/APPCException.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.exceptions;
+package org.onap.appc.exceptions;
 
 /**
  * This is a base class for all APPC defined exceptions.
diff --git a/appc-common/src/main/java/org/openecomp/appc/exceptions/InvalidInputException.java b/appc-common/src/main/java/org/openecomp/appc/exceptions/InvalidInputException.java
index e9bb0d1..4a82ba8 100644
--- a/appc-common/src/main/java/org/openecomp/appc/exceptions/InvalidInputException.java
+++ b/appc-common/src/main/java/org/openecomp/appc/exceptions/InvalidInputException.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.exceptions;
+package org.onap.appc.exceptions;
 
 public class InvalidInputException extends Exception {
     public InvalidInputException(String message){
diff --git a/appc-common/src/main/java/org/openecomp/appc/exceptions/InvalidStateException.java b/appc-common/src/main/java/org/openecomp/appc/exceptions/InvalidStateException.java
index ceeb872..d29b931 100644
--- a/appc-common/src/main/java/org/openecomp/appc/exceptions/InvalidStateException.java
+++ b/appc-common/src/main/java/org/openecomp/appc/exceptions/InvalidStateException.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.exceptions;
+package org.onap.appc.exceptions;
 
 public class InvalidStateException extends Exception {
     public InvalidStateException(String message) {
diff --git a/appc-common/src/main/java/org/openecomp/appc/exceptions/UnknownProviderException.java b/appc-common/src/main/java/org/openecomp/appc/exceptions/UnknownProviderException.java
index f3eb8a4..89b29e6 100644
--- a/appc-common/src/main/java/org/openecomp/appc/exceptions/UnknownProviderException.java
+++ b/appc-common/src/main/java/org/openecomp/appc/exceptions/UnknownProviderException.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.exceptions;
+package org.onap.appc.exceptions;
 
 /**
  * This exception indicates that the named provider could not be found or was unidentifiable.
diff --git a/appc-common/src/main/java/org/openecomp/appc/i18n/Msg.java b/appc-common/src/main/java/org/openecomp/appc/i18n/Msg.java
index f4a393f..b6a0657 100644
--- a/appc-common/src/main/java/org/openecomp/appc/i18n/Msg.java
+++ b/appc-common/src/main/java/org/openecomp/appc/i18n/Msg.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.i18n;
+package org.onap.appc.i18n;
 
 import com.att.eelf.i18n.EELFResolvableErrorEnum;
 import com.att.eelf.i18n.EELFResourceManager;
@@ -819,6 +819,6 @@
      * Static initializer to ensure the resource bundles for this class are loaded...
      */
     static {
-        EELFResourceManager.loadMessageBundle("org/openecomp/appc/i18n/MessageResources");
+        EELFResourceManager.loadMessageBundle("org/onap/appc/i18n/MessageResources");
     }
 }
diff --git a/appc-common/src/main/java/org/openecomp/appc/logging/LoggingConstants.java b/appc-common/src/main/java/org/openecomp/appc/logging/LoggingConstants.java
index 5c6d7b2..30ff91d 100644
--- a/appc-common/src/main/java/org/openecomp/appc/logging/LoggingConstants.java
+++ b/appc-common/src/main/java/org/openecomp/appc/logging/LoggingConstants.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.logging;
+package org.onap.appc.logging;
 
 /**
  * Constant definition of logging
diff --git a/appc-common/src/main/java/org/openecomp/appc/logging/LoggingUtils.java b/appc-common/src/main/java/org/openecomp/appc/logging/LoggingUtils.java
index 65ea789..1e4156e 100644
--- a/appc-common/src/main/java/org/openecomp/appc/logging/LoggingUtils.java
+++ b/appc-common/src/main/java/org/openecomp/appc/logging/LoggingUtils.java
@@ -22,9 +22,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.logging;
+package org.onap.appc.logging;
 
-import org.openecomp.appc.i18n.Msg;
+import org.onap.appc.i18n.Msg;
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
 import com.att.eelf.i18n.EELFResolvableErrorEnum;
diff --git a/appc-common/src/main/java/org/openecomp/appc/metadata/MetadataService.java b/appc-common/src/main/java/org/openecomp/appc/metadata/MetadataService.java
index d1c0cf4..29586ea 100644
--- a/appc-common/src/main/java/org/openecomp/appc/metadata/MetadataService.java
+++ b/appc-common/src/main/java/org/openecomp/appc/metadata/MetadataService.java
@@ -22,9 +22,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.metadata;
+package org.onap.appc.metadata;
 
-import org.openecomp.appc.metadata.objects.DependencyModelIdentifier;
+import org.onap.appc.metadata.objects.DependencyModelIdentifier;
 
 
 public interface MetadataService {
diff --git a/appc-common/src/main/java/org/openecomp/appc/metadata/impl/MetadataServiceImpl.java b/appc-common/src/main/java/org/openecomp/appc/metadata/impl/MetadataServiceImpl.java
index 092dbed..0321b7e 100644
--- a/appc-common/src/main/java/org/openecomp/appc/metadata/impl/MetadataServiceImpl.java
+++ b/appc-common/src/main/java/org/openecomp/appc/metadata/impl/MetadataServiceImpl.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.metadata.impl;
+package org.onap.appc.metadata.impl;
 
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
@@ -30,10 +30,10 @@
 
 import javax.sql.rowset.CachedRowSet;
 
-import org.openecomp.appc.cache.MetadataCache;
-import org.openecomp.appc.cache.impl.MetadataCacheFactory;
-import org.openecomp.appc.metadata.MetadataService;
-import org.openecomp.appc.metadata.objects.DependencyModelIdentifier;
+import org.onap.appc.cache.MetadataCache;
+import org.onap.appc.cache.impl.MetadataCacheFactory;
+import org.onap.appc.metadata.MetadataService;
+import org.onap.appc.metadata.objects.DependencyModelIdentifier;
 
 import java.sql.SQLException;
 import java.util.ArrayList;
diff --git a/appc-common/src/main/java/org/openecomp/appc/metadata/objects/DependencyModelIdentifier.java b/appc-common/src/main/java/org/openecomp/appc/metadata/objects/DependencyModelIdentifier.java
index 8b1b587..ddd0356 100644
--- a/appc-common/src/main/java/org/openecomp/appc/metadata/objects/DependencyModelIdentifier.java
+++ b/appc-common/src/main/java/org/openecomp/appc/metadata/objects/DependencyModelIdentifier.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.metadata.objects;
+package org.onap.appc.metadata.objects;
 
 /**
  * Object of identifier for dependency model.
diff --git a/appc-common/src/main/java/org/openecomp/appc/pool/Allocator.java b/appc-common/src/main/java/org/openecomp/appc/pool/Allocator.java
index e64e462..4b9f15a 100644
--- a/appc-common/src/main/java/org/openecomp/appc/pool/Allocator.java
+++ b/appc-common/src/main/java/org/openecomp/appc/pool/Allocator.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.pool;
+package org.onap.appc.pool;
 
 import java.io.Closeable;
 
diff --git a/appc-common/src/main/java/org/openecomp/appc/pool/CacheManagement.java b/appc-common/src/main/java/org/openecomp/appc/pool/CacheManagement.java
index 18793b9..9eb4577 100644
--- a/appc-common/src/main/java/org/openecomp/appc/pool/CacheManagement.java
+++ b/appc-common/src/main/java/org/openecomp/appc/pool/CacheManagement.java
@@ -23,7 +23,7 @@
  */
 
 
-package org.openecomp.appc.pool;
+package org.onap.appc.pool;
 
 public interface CacheManagement {
 
diff --git a/appc-common/src/main/java/org/openecomp/appc/pool/CachedElement.java b/appc-common/src/main/java/org/openecomp/appc/pool/CachedElement.java
index d2b3c0a..d7d243d 100644
--- a/appc-common/src/main/java/org/openecomp/appc/pool/CachedElement.java
+++ b/appc-common/src/main/java/org/openecomp/appc/pool/CachedElement.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.pool;
+package org.onap.appc.pool;
 
 import java.io.Closeable;
 import java.io.IOException;
@@ -200,7 +200,7 @@
     /**
      * This method is used to be able to access the wrapped object underneath the dynamic proxy
      * 
-     * @see org.openecomp.appc.pool.CacheManagement#getWrappedObject()
+     * @see org.onap.appc.pool.CacheManagement#getWrappedObject()
      */
     @Override
     public T getWrappedObject() {
diff --git a/appc-common/src/main/java/org/openecomp/appc/pool/Destructor.java b/appc-common/src/main/java/org/openecomp/appc/pool/Destructor.java
index 94ffbb2..46bcd2c 100644
--- a/appc-common/src/main/java/org/openecomp/appc/pool/Destructor.java
+++ b/appc-common/src/main/java/org/openecomp/appc/pool/Destructor.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.pool;
+package org.onap.appc.pool;
 
 import java.io.Closeable;
 
diff --git a/appc-common/src/main/java/org/openecomp/appc/pool/Pool.java b/appc-common/src/main/java/org/openecomp/appc/pool/Pool.java
index bbbba17..6d850ae 100644
--- a/appc-common/src/main/java/org/openecomp/appc/pool/Pool.java
+++ b/appc-common/src/main/java/org/openecomp/appc/pool/Pool.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.pool;
+package org.onap.appc.pool;
 
 import java.io.Closeable;
 import java.util.ArrayDeque;
diff --git a/appc-common/src/main/java/org/openecomp/appc/pool/PoolDrainedException.java b/appc-common/src/main/java/org/openecomp/appc/pool/PoolDrainedException.java
index 01536cb..260dc7b 100644
--- a/appc-common/src/main/java/org/openecomp/appc/pool/PoolDrainedException.java
+++ b/appc-common/src/main/java/org/openecomp/appc/pool/PoolDrainedException.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.pool;
+package org.onap.appc.pool;
 
 /**
  * This exception is thrown whenever an attempt is made to access a pool of resources where the pool has been drained.
diff --git a/appc-common/src/main/java/org/openecomp/appc/pool/PoolException.java b/appc-common/src/main/java/org/openecomp/appc/pool/PoolException.java
index cc6b759..76d798b 100644
--- a/appc-common/src/main/java/org/openecomp/appc/pool/PoolException.java
+++ b/appc-common/src/main/java/org/openecomp/appc/pool/PoolException.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.pool;
+package org.onap.appc.pool;
 
 /**
  * A pool exception is a specialization of checked exceptions that define various pool abnormal states or requests.
diff --git a/appc-common/src/main/java/org/openecomp/appc/pool/PoolExtensionException.java b/appc-common/src/main/java/org/openecomp/appc/pool/PoolExtensionException.java
index 0cfffac..c95c407 100644
--- a/appc-common/src/main/java/org/openecomp/appc/pool/PoolExtensionException.java
+++ b/appc-common/src/main/java/org/openecomp/appc/pool/PoolExtensionException.java
@@ -24,7 +24,7 @@
 
 
   
-package org.openecomp.appc.pool;
+package org.onap.appc.pool;
 
 /**
  * An error occurred trying to extend the pool
diff --git a/appc-common/src/main/java/org/openecomp/appc/pool/PoolSpecificationException.java b/appc-common/src/main/java/org/openecomp/appc/pool/PoolSpecificationException.java
index 9c6f0c1..361e50a 100644
--- a/appc-common/src/main/java/org/openecomp/appc/pool/PoolSpecificationException.java
+++ b/appc-common/src/main/java/org/openecomp/appc/pool/PoolSpecificationException.java
@@ -24,7 +24,7 @@
 
 
   
-package org.openecomp.appc.pool;
+package org.onap.appc.pool;
 
 /**
  * This exception is thrown whenever the pool is not specified correctly
diff --git a/appc-common/src/main/java/org/openecomp/appc/util/JsonUtil.java b/appc-common/src/main/java/org/openecomp/appc/util/JsonUtil.java
index 53ff4e1..c190636 100644
--- a/appc-common/src/main/java/org/openecomp/appc/util/JsonUtil.java
+++ b/appc-common/src/main/java/org/openecomp/appc/util/JsonUtil.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.util;
+package org.onap.appc.util;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 
@@ -42,6 +42,6 @@
     public static Map<String, String> convertJsonStringToFlatMap(String valueAsString) throws IOException {
         ObjectMapper objectMapper = new ObjectMapper();
         Map readValueMap = objectMapper.readValue(valueAsString,Map.class);
-        return org.openecomp.appc.util.ObjectMapper.map(readValueMap);
+        return org.onap.appc.util.ObjectMapper.map(readValueMap);
     }
 }
diff --git a/appc-common/src/main/java/org/openecomp/appc/util/MessageFormatter.java b/appc-common/src/main/java/org/openecomp/appc/util/MessageFormatter.java
index febf3dd..44095fb 100644
--- a/appc-common/src/main/java/org/openecomp/appc/util/MessageFormatter.java
+++ b/appc-common/src/main/java/org/openecomp/appc/util/MessageFormatter.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.util;
+package org.onap.appc.util;
 
 import org.apache.commons.lang3.StringUtils;
 
diff --git a/appc-common/src/main/java/org/openecomp/appc/util/ObjectMapper.java b/appc-common/src/main/java/org/openecomp/appc/util/ObjectMapper.java
index 64038f9..df0b24a 100644
--- a/appc-common/src/main/java/org/openecomp/appc/util/ObjectMapper.java
+++ b/appc-common/src/main/java/org/openecomp/appc/util/ObjectMapper.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.util;
+package org.onap.appc.util;
 
 import java.lang.reflect.Array;
 import java.util.Map;
diff --git a/appc-common/src/main/java/org/openecomp/appc/util/PathContext.java b/appc-common/src/main/java/org/openecomp/appc/util/PathContext.java
index 5664df6..79b75d1 100644
--- a/appc-common/src/main/java/org/openecomp/appc/util/PathContext.java
+++ b/appc-common/src/main/java/org/openecomp/appc/util/PathContext.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.util;
+package org.onap.appc.util;
 
 
 import java.util.Collections;
diff --git a/appc-common/src/main/java/org/openecomp/appc/util/StringHelper.java b/appc-common/src/main/java/org/openecomp/appc/util/StringHelper.java
index a3603cd..2e68cbb 100644
--- a/appc-common/src/main/java/org/openecomp/appc/util/StringHelper.java
+++ b/appc-common/src/main/java/org/openecomp/appc/util/StringHelper.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.util;
+package org.onap.appc.util;
 
 import java.util.Date;
 import java.util.List;
diff --git a/appc-common/src/main/java/org/openecomp/appc/util/StructuredPropertyHelper.java b/appc-common/src/main/java/org/openecomp/appc/util/StructuredPropertyHelper.java
index dc40b63..b610b5a 100644
--- a/appc-common/src/main/java/org/openecomp/appc/util/StructuredPropertyHelper.java
+++ b/appc-common/src/main/java/org/openecomp/appc/util/StructuredPropertyHelper.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.util;
+package org.onap.appc.util;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/appc-common/src/main/java/org/openecomp/appc/util/Time.java b/appc-common/src/main/java/org/openecomp/appc/util/Time.java
index 76fd6eb..ce2babd 100644
--- a/appc-common/src/main/java/org/openecomp/appc/util/Time.java
+++ b/appc-common/src/main/java/org/openecomp/appc/util/Time.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.util;
+package org.onap.appc.util;
 
 import java.sql.Timestamp;
 import java.text.DateFormat;
diff --git a/appc-common/src/main/java/org/openecomp/appc/util/UnmodifiableProperties.java b/appc-common/src/main/java/org/openecomp/appc/util/UnmodifiableProperties.java
index fea0ed0..831f0f5 100644
--- a/appc-common/src/main/java/org/openecomp/appc/util/UnmodifiableProperties.java
+++ b/appc-common/src/main/java/org/openecomp/appc/util/UnmodifiableProperties.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.util;
+package org.onap.appc.util;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/appc-common/src/main/java/org/openecomp/appc/util/httpClient.java b/appc-common/src/main/java/org/openecomp/appc/util/httpClient.java
index cb6bb8c..edb27c6 100644
--- a/appc-common/src/main/java/org/openecomp/appc/util/httpClient.java
+++ b/appc-common/src/main/java/org/openecomp/appc/util/httpClient.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.util;
+package org.onap.appc.util;
 
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
@@ -39,9 +39,9 @@
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.impl.client.HttpClients;
-import org.openecomp.appc.configuration.Configuration;
-import org.openecomp.appc.configuration.ConfigurationFactory;
-import org.openecomp.appc.exceptions.APPCException;
+import org.onap.appc.configuration.Configuration;
+import org.onap.appc.configuration.ConfigurationFactory;
+import org.onap.appc.exceptions.APPCException;
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
 
diff --git a/appc-common/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/appc-common/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 36e510c..03e91e3 100644
--- a/appc-common/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/appc-common/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -32,10 +32,10 @@
 
     <reference id="dbLibServiceRef" availability="mandatory" activation="eager" interface="org.onap.ccsdk.sli.core.dblib.DbLibService" />
 
-    <bean id="MetadataServiceImplBean" class="org.openecomp.appc.metadata.impl.MetadataServiceImpl" scope="singleton">
+    <bean id="MetadataServiceImplBean" class="org.onap.appc.metadata.impl.MetadataServiceImpl" scope="singleton">
         <property name="dbLibService" ref="dbLibServiceRef" />
     </bean>
 
-    <service id="MetadataService" interface="org.openecomp.appc.metadata.MetadataService" ref="MetadataServiceImplBean"/>
+    <service id="MetadataService" interface="org.onap.appc.metadata.MetadataService" ref="MetadataServiceImplBean"/>
 
 </blueprint>
diff --git a/appc-common/src/main/resources/org/openecomp/appc/i18n/MessageResources.properties b/appc-common/src/main/resources/org/openecomp/appc/i18n/MessageResources.properties
index 354adff..7ffb220 100644
--- a/appc-common/src/main/resources/org/openecomp/appc/i18n/MessageResources.properties
+++ b/appc-common/src/main/resources/org/openecomp/appc/i18n/MessageResources.properties
@@ -80,9 +80,9 @@
   If a configuration file was expected, verify the file name and that it exists on \
     the search path for the configuration properties.  The search path defaults to \
     <em>&#36;{user.home},/opt/app/appc/etc,etc,../etc,/etc,.</em> and can be overridden \
-    by specification of the property <em>org.openecomp.appc.bootstrap.path</em>.  The \
+    by specification of the property <em>org.onap.appc.bootstrap.path</em>.  The \
     property file name defaults to <em>appc.properties</em> and can also be \
-    overridden by the <em>org.openecomp.appc.bootstrap.file</em> property.|\
+    overridden by the <em>org.onap.appc.bootstrap.file</em> property.|\
   This message indicates that the bootstrap path was searched for the bootstrap \
     property file (a file that can be supplied to configure APPC) and that no file \
     with the specified name was found on any of the path elements of the path.
@@ -92,12 +92,12 @@
   No resolution is required|\
   This message indicates that the specified path is being examined for a configuration \
     file of the indicated name.  The configuration file defaults to <em>appc.properties</em> \
-    but can be overridden by specification of the <em>org.openecomp.appc.bootstrap.file</em> \
+    but can be overridden by specification of the <em>org.onap.appc.bootstrap.file</em> \
     property (using a command-line override, for example).  This message is intended to \
     assist in the debugging and analysis of configuration issues where the indicated \
     file may not be processed or found.  The path that is searched is a comma-delimited \
     list of directories and defaults to <em>&#36;{user.home},/opt/app/appc/etc,etc,../etc,/etc,.</em> \
-    but can also be overridden by specification of the <em>org.openecomp.appc.bootstrap.path</em> \
+    but can also be overridden by specification of the <em>org.onap.appc.bootstrap.path</em> \
     property.
 
 LOADING_APPLICATION_OVERRIDES=APPC0009I|\
diff --git a/appc-common/src/test/java/org/openecomp/appc/cache/CacheStrategiesTest.java b/appc-common/src/test/java/org/openecomp/appc/cache/CacheStrategiesTest.java
index c9e0e00..41ceb43 100644
--- a/appc-common/src/test/java/org/openecomp/appc/cache/CacheStrategiesTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/cache/CacheStrategiesTest.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.cache;
+package org.onap.appc.cache;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/appc-common/src/test/java/org/openecomp/appc/cache/impl/LRUCacheTest.java b/appc-common/src/test/java/org/openecomp/appc/cache/impl/LRUCacheTest.java
index 75be94d..3f4233d 100644
--- a/appc-common/src/test/java/org/openecomp/appc/cache/impl/LRUCacheTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/cache/impl/LRUCacheTest.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.cache.impl;
+package org.onap.appc.cache.impl;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/appc-common/src/test/java/org/openecomp/appc/cache/impl/MetadataCacheFactoryTest.java b/appc-common/src/test/java/org/openecomp/appc/cache/impl/MetadataCacheFactoryTest.java
index db66586..3861180 100644
--- a/appc-common/src/test/java/org/openecomp/appc/cache/impl/MetadataCacheFactoryTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/cache/impl/MetadataCacheFactoryTest.java
@@ -22,12 +22,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.cache.impl;
+package org.onap.appc.cache.impl;
 
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.openecomp.appc.cache.CacheStrategies;
+import org.onap.appc.cache.CacheStrategies;
 import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
diff --git a/appc-common/src/test/java/org/openecomp/appc/cache/impl/MetadataCacheImplTest.java b/appc-common/src/test/java/org/openecomp/appc/cache/impl/MetadataCacheImplTest.java
index 48cc679..c68fb48 100644
--- a/appc-common/src/test/java/org/openecomp/appc/cache/impl/MetadataCacheImplTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/cache/impl/MetadataCacheImplTest.java
@@ -22,11 +22,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.cache.impl;
+package org.onap.appc.cache.impl;
 
 import org.junit.Assert;
 import org.junit.Test;
-import org.openecomp.appc.cache.CacheStrategies;
+import org.onap.appc.cache.CacheStrategies;
 import org.powermock.reflect.Whitebox;
 
 import static org.mockito.Mockito.spy;
diff --git a/appc-common/src/test/java/org/openecomp/appc/concurrent/TestSignal.java b/appc-common/src/test/java/org/openecomp/appc/concurrent/TestSignal.java
index 1148a67..e86fe54 100644
--- a/appc-common/src/test/java/org/openecomp/appc/concurrent/TestSignal.java
+++ b/appc-common/src/test/java/org/openecomp/appc/concurrent/TestSignal.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.concurrent;
+package org.onap.appc.concurrent;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -33,7 +33,7 @@
 import java.util.concurrent.TimeoutException;
 
 import org.junit.Test;
-import org.openecomp.appc.concurrent.Signal;
+import org.onap.appc.concurrent.Signal;
 
 public class TestSignal {
 
diff --git a/appc-common/src/test/java/org/openecomp/appc/configuration/DefaultConfigurationTest.java b/appc-common/src/test/java/org/openecomp/appc/configuration/DefaultConfigurationTest.java
index 53bd9db..a423eae 100644
--- a/appc-common/src/test/java/org/openecomp/appc/configuration/DefaultConfigurationTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/configuration/DefaultConfigurationTest.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.configuration;
+package org.onap.appc.configuration;
 
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/appc-common/src/test/java/org/openecomp/appc/encryption/TestEncryption.java b/appc-common/src/test/java/org/openecomp/appc/encryption/TestEncryption.java
index 3c7483f..aa9664d 100644
--- a/appc-common/src/test/java/org/openecomp/appc/encryption/TestEncryption.java
+++ b/appc-common/src/test/java/org/openecomp/appc/encryption/TestEncryption.java
@@ -22,13 +22,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.encryption;
+package org.onap.appc.encryption;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 
 import org.junit.Test;
-import org.openecomp.appc.encryption.EncryptionTool;
+import org.onap.appc.encryption.EncryptionTool;
 
 public class TestEncryption {
 
diff --git a/appc-common/src/test/java/org/openecomp/appc/exceptions/APPCExceptionTest.java b/appc-common/src/test/java/org/openecomp/appc/exceptions/APPCExceptionTest.java
index fc6aa9e..a9611a2 100644
--- a/appc-common/src/test/java/org/openecomp/appc/exceptions/APPCExceptionTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/exceptions/APPCExceptionTest.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.exceptions;
+package org.onap.appc.exceptions;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/appc-common/src/test/java/org/openecomp/appc/exceptions/InvalidInputExceptionTest.java b/appc-common/src/test/java/org/openecomp/appc/exceptions/InvalidInputExceptionTest.java
index 5608a12..9822ff7 100644
--- a/appc-common/src/test/java/org/openecomp/appc/exceptions/InvalidInputExceptionTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/exceptions/InvalidInputExceptionTest.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.exceptions;
+package org.onap.appc.exceptions;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/appc-common/src/test/java/org/openecomp/appc/exceptions/InvalidStateExceptionTest.java b/appc-common/src/test/java/org/openecomp/appc/exceptions/InvalidStateExceptionTest.java
index a095a51..c008131 100644
--- a/appc-common/src/test/java/org/openecomp/appc/exceptions/InvalidStateExceptionTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/exceptions/InvalidStateExceptionTest.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.exceptions;
+package org.onap.appc.exceptions;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/appc-common/src/test/java/org/openecomp/appc/exceptions/UnknownProviderExceptionTest.java b/appc-common/src/test/java/org/openecomp/appc/exceptions/UnknownProviderExceptionTest.java
index d3fc15d..d3c7ab5 100644
--- a/appc-common/src/test/java/org/openecomp/appc/exceptions/UnknownProviderExceptionTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/exceptions/UnknownProviderExceptionTest.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.exceptions;
+package org.onap.appc.exceptions;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/appc-common/src/test/java/org/openecomp/appc/i18n/MsgTest.java b/appc-common/src/test/java/org/openecomp/appc/i18n/MsgTest.java
index aa30ae7..1a541a5 100644
--- a/appc-common/src/test/java/org/openecomp/appc/i18n/MsgTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/i18n/MsgTest.java
@@ -1,4 +1,4 @@
-package org.openecomp.appc.i18n;
+package org.onap.appc.i18n;
 
 import static org.junit.Assert.assertNotNull;
 
diff --git a/appc-common/src/test/java/org/openecomp/appc/logging/LoggingConstantsTest.java b/appc-common/src/test/java/org/openecomp/appc/logging/LoggingConstantsTest.java
index 547f180..1238b49 100644
--- a/appc-common/src/test/java/org/openecomp/appc/logging/LoggingConstantsTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/logging/LoggingConstantsTest.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.logging;
+package org.onap.appc.logging;
 
 import org.junit.Test;
 import org.powermock.reflect.Whitebox;
diff --git a/appc-common/src/test/java/org/openecomp/appc/metadata/TestMetadataService.java b/appc-common/src/test/java/org/openecomp/appc/metadata/TestMetadataService.java
index aa9e453..7316fe8 100644
--- a/appc-common/src/test/java/org/openecomp/appc/metadata/TestMetadataService.java
+++ b/appc-common/src/test/java/org/openecomp/appc/metadata/TestMetadataService.java
@@ -22,12 +22,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.metadata;
+package org.onap.appc.metadata;
 
 import org.onap.ccsdk.sli.core.dblib.DbLibService;
 import com.sun.rowset.CachedRowSetImpl;
 import org.mockito.Mockito;
-import org.openecomp.appc.metadata.impl.MetadataServiceImpl;
+import org.onap.appc.metadata.impl.MetadataServiceImpl;
 
 import javax.sql.rowset.CachedRowSet;
 import java.sql.SQLException;
diff --git a/appc-common/src/test/java/org/openecomp/appc/metadata/objects/DependencyModelIdentifierTest.java b/appc-common/src/test/java/org/openecomp/appc/metadata/objects/DependencyModelIdentifierTest.java
index 214943e..95f3312 100644
--- a/appc-common/src/test/java/org/openecomp/appc/metadata/objects/DependencyModelIdentifierTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/metadata/objects/DependencyModelIdentifierTest.java
@@ -22,14 +22,14 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.metadata.objects;
+package org.onap.appc.metadata.objects;
 
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.powermock.reflect.Whitebox;
 
-import static org.openecomp.appc.metadata.objects.DependencyModelIdentifier.prime;
+import static org.onap.appc.metadata.objects.DependencyModelIdentifier.prime;
 
 public class DependencyModelIdentifierTest {
     private static final String vnfType = "vnfType";
diff --git a/appc-common/src/test/java/org/openecomp/appc/pool/CachedElementTest.java b/appc-common/src/test/java/org/openecomp/appc/pool/CachedElementTest.java
index 99a417c..30e5924 100644
--- a/appc-common/src/test/java/org/openecomp/appc/pool/CachedElementTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/pool/CachedElementTest.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.pool;
+package org.onap.appc.pool;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -38,14 +38,14 @@
 
 import org.junit.Before;
 import org.junit.Test;
-import org.openecomp.appc.pool.Allocator;
-import org.openecomp.appc.pool.CachedElement;
-import org.openecomp.appc.pool.Destructor;
-import org.openecomp.appc.pool.Pool;
-import org.openecomp.appc.pool.PoolDrainedException;
-import org.openecomp.appc.pool.PoolExtensionException;
-import org.openecomp.appc.pool.PoolSpecificationException;
-import org.openecomp.appc.pool.*;
+import org.onap.appc.pool.Allocator;
+import org.onap.appc.pool.CachedElement;
+import org.onap.appc.pool.Destructor;
+import org.onap.appc.pool.Pool;
+import org.onap.appc.pool.PoolDrainedException;
+import org.onap.appc.pool.PoolExtensionException;
+import org.onap.appc.pool.PoolSpecificationException;
+import org.onap.appc.pool.*;
 
 
 public class CachedElementTest implements Allocator<Testable>, Destructor<Testable> {
@@ -255,7 +255,7 @@
     }
 
     /**
-     * @see org.openecomp.appc.pool.Allocator#allocate(org.openecomp.appc.pool.Pool)
+     * @see org.onap.appc.pool.Allocator#allocate(org.onap.appc.pool.Pool)
      */
     @Override
     public Testable allocate(Pool<Testable> pool) {
@@ -267,7 +267,7 @@
     }
 
     /**
-     * @see org.openecomp.appc.pool.Destructor#destroy(java.io.Closeable, org.openecomp.appc.pool.Pool)
+     * @see org.onap.appc.pool.Destructor#destroy(java.io.Closeable, org.onap.appc.pool.Pool)
      */
     @Override
     public void destroy(Testable obj, Pool<Testable> pool) {
diff --git a/appc-common/src/test/java/org/openecomp/appc/pool/Element.java b/appc-common/src/test/java/org/openecomp/appc/pool/Element.java
index 41255b6..877fab2 100644
--- a/appc-common/src/test/java/org/openecomp/appc/pool/Element.java
+++ b/appc-common/src/test/java/org/openecomp/appc/pool/Element.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.pool;
+package org.onap.appc.pool;
 
 import java.io.IOException;
 
diff --git a/appc-common/src/test/java/org/openecomp/appc/pool/PoolTest.java b/appc-common/src/test/java/org/openecomp/appc/pool/PoolTest.java
index 2c91945..db9a2e6 100644
--- a/appc-common/src/test/java/org/openecomp/appc/pool/PoolTest.java
+++ b/appc-common/src/test/java/org/openecomp/appc/pool/PoolTest.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.pool;
+package org.onap.appc.pool;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -39,13 +39,13 @@
 
 import org.junit.Before;
 import org.junit.Test;
-import org.openecomp.appc.pool.Allocator;
-import org.openecomp.appc.pool.Destructor;
-import org.openecomp.appc.pool.Pool;
-import org.openecomp.appc.pool.PoolDrainedException;
-import org.openecomp.appc.pool.PoolExtensionException;
-import org.openecomp.appc.pool.PoolSpecificationException;
-import org.openecomp.appc.pool.*;
+import org.onap.appc.pool.Allocator;
+import org.onap.appc.pool.Destructor;
+import org.onap.appc.pool.Pool;
+import org.onap.appc.pool.PoolDrainedException;
+import org.onap.appc.pool.PoolExtensionException;
+import org.onap.appc.pool.PoolSpecificationException;
+import org.onap.appc.pool.*;
 
 
 public class PoolTest implements Allocator<Testable>, Destructor<Testable> {
@@ -299,7 +299,7 @@
     }
 
     /**
-     * @see org.openecomp.appc.pool.Destructor#destroy(java.io.Closeable, org.openecomp.appc.pool.Pool)
+     * @see org.onap.appc.pool.Destructor#destroy(java.io.Closeable, org.onap.appc.pool.Pool)
      */
     @Override
     public void destroy(Testable obj, Pool<Testable> pool) {
@@ -312,7 +312,7 @@
     }
 
     /**
-     * @see org.openecomp.appc.pool.Allocator#allocate(org.openecomp.appc.pool.Pool)
+     * @see org.onap.appc.pool.Allocator#allocate(org.onap.appc.pool.Pool)
      */
     @Override
     public Testable allocate(Pool<Testable> pool) {
diff --git a/appc-common/src/test/java/org/openecomp/appc/pool/Testable.java b/appc-common/src/test/java/org/openecomp/appc/pool/Testable.java
index b6e69ef..fb2fa75 100644
--- a/appc-common/src/test/java/org/openecomp/appc/pool/Testable.java
+++ b/appc-common/src/test/java/org/openecomp/appc/pool/Testable.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.pool;
+package org.onap.appc.pool;
 
 import java.io.Closeable;
 
diff --git a/appc-common/src/test/java/org/openecomp/appc/util/TestJsonUtil.java b/appc-common/src/test/java/org/openecomp/appc/util/TestJsonUtil.java
index 87e70e4..270f90f 100644
--- a/appc-common/src/test/java/org/openecomp/appc/util/TestJsonUtil.java
+++ b/appc-common/src/test/java/org/openecomp/appc/util/TestJsonUtil.java
@@ -22,11 +22,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.util;
+package org.onap.appc.util;
 
 import org.junit.Assert;
 import org.junit.Test;
-import org.openecomp.appc.util.JsonUtil;
+import org.onap.appc.util.JsonUtil;
 
 import java.io.IOException;
 import java.util.HashMap;
diff --git a/appc-common/src/test/java/org/openecomp/appc/util/TestStringHelper.java b/appc-common/src/test/java/org/openecomp/appc/util/TestStringHelper.java
index 74f0b12..06957cf 100644
--- a/appc-common/src/test/java/org/openecomp/appc/util/TestStringHelper.java
+++ b/appc-common/src/test/java/org/openecomp/appc/util/TestStringHelper.java
@@ -24,7 +24,7 @@
 
 
 
-package org.openecomp.appc.util;
+package org.onap.appc.util;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -33,7 +33,7 @@
 import java.util.Properties;
 
 import org.junit.Test;
-import org.openecomp.appc.util.StringHelper;
+import org.onap.appc.util.StringHelper;
 
 
 public class TestStringHelper {
diff --git a/appc-common/src/test/java/org/openecomp/appc/util/TestStructuredPropertyHelper.java b/appc-common/src/test/java/org/openecomp/appc/util/TestStructuredPropertyHelper.java
index 0c019e9..06c27d0 100644
--- a/appc-common/src/test/java/org/openecomp/appc/util/TestStructuredPropertyHelper.java
+++ b/appc-common/src/test/java/org/openecomp/appc/util/TestStructuredPropertyHelper.java
@@ -22,7 +22,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.appc.util;
+package org.onap.appc.util;
 
 import static org.junit.Assert.*;
 
@@ -32,8 +32,8 @@
 
 import org.junit.Before;
 import org.junit.Test;
-import org.openecomp.appc.util.StructuredPropertyHelper;
-import org.openecomp.appc.util.StructuredPropertyHelper.Node;
+import org.onap.appc.util.StructuredPropertyHelper;
+import org.onap.appc.util.StructuredPropertyHelper.Node;
 
 /**
  * This class is used to test the structured property helper class.
