diff --git a/dblib/pom.xml b/dblib/pom.xml
index 722b2d7..775ff05 100755
--- a/dblib/pom.xml
+++ b/dblib/pom.xml
@@ -34,9 +34,9 @@
 
                     <inceptionYear>2016</inceptionYear>
 
-                    <organizationName>AT&amp;T</organizationName>
+                    <organizationName>ONAP</organizationName>
 
-                    <projectName>openecomp</projectName>
+                    <projectName>onap</projectName>
 
                     <roots>
 
diff --git a/dblib/provider/pom.xml b/dblib/provider/pom.xml
index 078c754..41d383e 100755
--- a/dblib/provider/pom.xml
+++ b/dblib/provider/pom.xml
@@ -63,12 +63,9 @@
 				<extensions>true</extensions>
 				<configuration>
 					<instructions>
-						<Bundle-SymbolicName>org.openecomp.sdnc.sli.resource.dblib</Bundle-SymbolicName>
-						<Bundle-Activator>org.openecomp.sdnc.sli.resource.dblib.DBLIBResourceActivator</Bundle-Activator>
-						<Export-Package>org.openecomp.sdnc.sli.resource.dblib;version=${project.version}</Export-Package>
-						<!--
-						<Import-Package>org.openecomp.sdnc.sli.*,org.osgi.framework.*,org.slf4j.*,com.mysql.jdbc.*,javax.sql.*,org.apache.tomcat.*</Import-Package>
-						-->
+						<Bundle-SymbolicName>org.onap.ccsdk.sli.core.dblib</Bundle-SymbolicName>
+						<Bundle-Activator>org.onap.ccsdk.sli.core.dblib.DBLIBResourceActivator</Bundle-Activator>
+						<Export-Package>org.onap.ccsdk.sli.core.dblib;version=${project.version}</Export-Package>
 						<Import-Package>*</Import-Package>
 						<Embed-Transitive>true</Embed-Transitive>
 					</instructions>
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/CachedDataSource.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSource.java
similarity index 97%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/CachedDataSource.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSource.java
index 58a0aeb..9dc262d 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/CachedDataSource.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSource.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 import java.io.Closeable;
 import java.io.IOException;
@@ -43,10 +43,11 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.tomcat.jdbc.pool.PoolExhaustedException;
-import org.openecomp.sdnc.sli.resource.dblib.config.BaseDBConfiguration;
-import org.openecomp.sdnc.sli.resource.dblib.pm.SQLExecutionMonitor;
-import org.openecomp.sdnc.sli.resource.dblib.pm.SQLExecutionMonitorObserver;
-import org.openecomp.sdnc.sli.resource.dblib.pm.SQLExecutionMonitor.TestObject;
+import org.onap.ccsdk.sli.core.dblib.config.BaseDBConfiguration;
+import org.onap.ccsdk.sli.core.dblib.pm.SQLExecutionMonitor;
+import org.onap.ccsdk.sli.core.dblib.pm.SQLExecutionMonitorObserver;
+import org.onap.ccsdk.sli.core.dblib.pm.SQLExecutionMonitor.TestObject;
+
 import com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException;
 
 
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/CachedDataSourceFactory.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSourceFactory.java
similarity index 77%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/CachedDataSourceFactory.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSourceFactory.java
index 3e51ed9..07e3dfa 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/CachedDataSourceFactory.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSourceFactory.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 
-import org.openecomp.sdnc.sli.resource.dblib.config.BaseDBConfiguration;
-import org.openecomp.sdnc.sli.resource.dblib.config.JDBCConfiguration;
-import org.openecomp.sdnc.sli.resource.dblib.jdbc.JdbcDBCachedDataSource;
-import org.openecomp.sdnc.sli.resource.dblib.jdbc.MySQLCachedDataSource;
+import org.onap.ccsdk.sli.core.dblib.config.BaseDBConfiguration;
+import org.onap.ccsdk.sli.core.dblib.config.JDBCConfiguration;
+import org.onap.ccsdk.sli.core.dblib.jdbc.JdbcDBCachedDataSource;
+import org.onap.ccsdk.sli.core.dblib.jdbc.MySQLCachedDataSource;
 
 /**
  * @version $Revision: 1.1 $
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBConfigException.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBConfigException.java
similarity index 93%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBConfigException.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBConfigException.java
index b324e6a..e41e29b 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBConfigException.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBConfigException.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 
 /**
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBLIBResourceActivator.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBLIBResourceActivator.java
similarity index 97%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBLIBResourceActivator.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBLIBResourceActivator.java
index 150a9a8..8ae9a26 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBLIBResourceActivator.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBLIBResourceActivator.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 import java.io.File;
 import java.net.URL;
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBLibConnection.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBLibConnection.java
similarity index 98%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBLibConnection.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBLibConnection.java
index 5c1f510..8181b13 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBLibConnection.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBLibConnection.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 import java.sql.Array;
 import java.sql.Blob;
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBLibException.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBLibException.java
similarity index 92%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBLibException.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBLibException.java
index cc80741..de241f4 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBLibException.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBLibException.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 import java.sql.SQLException;
 
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBResourceManager.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBResourceManager.java
similarity index 93%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBResourceManager.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBResourceManager.java
index 5cf2953..78b970b 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBResourceManager.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBResourceManager.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 import java.io.PrintWriter;
 import java.sql.Connection;
@@ -47,12 +47,13 @@
 import javax.sql.rowset.CachedRowSet;
 
 import org.apache.tomcat.jdbc.pool.PoolExhaustedException;
-import org.openecomp.sdnc.sli.resource.dblib.config.DbConfigPool;
-import org.openecomp.sdnc.sli.resource.dblib.factory.AbstractDBResourceManagerFactory;
-import org.openecomp.sdnc.sli.resource.dblib.factory.AbstractResourceManagerFactory;
-import org.openecomp.sdnc.sli.resource.dblib.factory.DBConfigFactory;
-import org.openecomp.sdnc.sli.resource.dblib.pm.PollingWorker;
-import org.openecomp.sdnc.sli.resource.dblib.pm.SQLExecutionMonitor;
+import org.onap.ccsdk.sli.core.dblib.config.DbConfigPool;
+import org.onap.ccsdk.sli.core.dblib.factory.AbstractDBResourceManagerFactory;
+import org.onap.ccsdk.sli.core.dblib.factory.AbstractResourceManagerFactory;
+import org.onap.ccsdk.sli.core.dblib.factory.DBConfigFactory;
+import org.onap.ccsdk.sli.core.dblib.pm.PollingWorker;
+import org.onap.ccsdk.sli.core.dblib.pm.SQLExecutionMonitor;
+
 import com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -108,23 +109,23 @@
 		this.configProps = props;
 
 		// get retry interval value
-		retryInterval = getLongFromProperties(props, "org.openecomp.dblib.connection.retry", 10000L);
+		retryInterval = getLongFromProperties(props, "org.onap.dblib.connection.retry", 10000L);
 
 		// get recovery mode flag
-		recoveryMode = getBooleanFromProperties(props, "org.openecomp.dblib.connection.recovery", true);
+		recoveryMode = getBooleanFromProperties(props, "org.onap.dblib.connection.recovery", true);
 		if(!recoveryMode)
 		{
 			recoveryMode = false;
 			LOGGER.info("Recovery Mode disabled");
 		}
 		// get time out value for thread cleanup
-		terminationTimeOut = getLongFromProperties(props, "org.openecomp.dblib.termination.timeout", 300000L);
+		terminationTimeOut = getLongFromProperties(props, "org.onap.dblib.termination.timeout", 300000L);
 		// get properties for monitoring
-		monitorDbResponse = getBooleanFromProperties(props, "org.openecomp.dblib.connection.monitor", false);
-		monitoringInterval = getLongFromProperties(props, "org.openecomp.dblib.connection.monitor.interval", 1000L);
-		monitoringInitialDelay = getLongFromProperties(props, "org.openecomp.dblib.connection.monitor.startdelay", 5000L);
-		expectedCompletionTime = getLongFromProperties(props, "org.openecomp.dblib.connection.monitor.expectedcompletiontime", 5000L);
-		unprocessedFailoverThreshold = getLongFromProperties(props, "org.openecomp.dblib.connection.monitor.unprocessedfailoverthreshold", 3L);
+		monitorDbResponse = getBooleanFromProperties(props, "org.onap.dblib.connection.monitor", false);
+		monitoringInterval = getLongFromProperties(props, "org.onap.dblib.connection.monitor.interval", 1000L);
+		monitoringInitialDelay = getLongFromProperties(props, "org.onap.dblib.connection.monitor.startdelay", 5000L);
+		expectedCompletionTime = getLongFromProperties(props, "org.onap.dblib.connection.monitor.expectedcompletiontime", 5000L);
+		unprocessedFailoverThreshold = getLongFromProperties(props, "org.onap.dblib.connection.monitor.unprocessedfailoverthreshold", 3L);
 
 		// initialize performance monitor
 		PollingWorker.createInistance(props);
@@ -285,7 +286,7 @@
 	}
 
 	/* (non-Javadoc)
-	 * @see org.openecomp.sdnc.sli.resource.dblib.DbLibService#getData(java.lang.String, java.util.ArrayList, java.lang.String)
+	 * @see org.onap.ccsdk.sli.resource.dblib.DbLibService#getData(java.lang.String, java.util.ArrayList, java.lang.String)
 	 */
 	@Override
 	public CachedRowSet getData(String statement, ArrayList<String> arguments, String preferredDS) throws SQLException {
@@ -412,7 +413,7 @@
 
 
 	/* (non-Javadoc)
-	 * @see org.openecomp.sdnc.sli.resource.dblib.DbLibService#writeData(java.lang.String, java.util.ArrayList, java.lang.String)
+	 * @see org.onap.ccsdk.sli.resource.dblib.DbLibService#writeData(java.lang.String, java.util.ArrayList, java.lang.String)
 	 */
 	@Override
 	public boolean writeData(String statement, ArrayList<String> arguments, String preferredDS) throws SQLException
@@ -696,7 +697,7 @@
 	}
 
 	/* (non-Javadoc)
-	 * @see org.openecomp.sdnc.sli.resource.dblib.DbLibService#isActive()
+	 * @see org.onap.ccsdk.sli.resource.dblib.DbLibService#isActive()
 	 */
 	@Override
 	public boolean isActive() {
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBResourceObserver.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBResourceObserver.java
similarity index 91%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBResourceObserver.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBResourceObserver.java
index e06779f..2e1a6e9 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DBResourceObserver.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBResourceObserver.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 import java.util.Observer;
 
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DataAccessor.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DataAccessor.java
similarity index 92%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DataAccessor.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DataAccessor.java
index cd054a5..7921fa5 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DataAccessor.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DataAccessor.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 import java.sql.SQLException;
 import java.util.ArrayList;
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DataSourceComparator.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DataSourceComparator.java
similarity index 92%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DataSourceComparator.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DataSourceComparator.java
index 37d6251..bc14fb8 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DataSourceComparator.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DataSourceComparator.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 import java.util.Comparator;
 
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DbLibService.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DbLibService.java
similarity index 93%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DbLibService.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DbLibService.java
index 25edd1f..de98466 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DbLibService.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DbLibService.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 import java.sql.SQLException;
 import java.util.ArrayList;
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DblibConfigurationException.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DblibConfigurationException.java
similarity index 92%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DblibConfigurationException.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DblibConfigurationException.java
index 17700a5..be493aa 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/DblibConfigurationException.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DblibConfigurationException.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 
 public class DblibConfigurationException extends Exception {
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/NoAvailableConnectionsException.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/NoAvailableConnectionsException.java
similarity index 92%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/NoAvailableConnectionsException.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/NoAvailableConnectionsException.java
index 16895b4..a39e5c5 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/NoAvailableConnectionsException.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/NoAvailableConnectionsException.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 import java.sql.SQLException;
 
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/TerminatingCachedDataSource.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/TerminatingCachedDataSource.java
similarity index 88%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/TerminatingCachedDataSource.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/TerminatingCachedDataSource.java
index 234bbed..127e6d3 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/TerminatingCachedDataSource.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/TerminatingCachedDataSource.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib;
+package org.onap.ccsdk.sli.core.dblib;
 
 import java.sql.SQLFeatureNotSupportedException;
 import java.util.logging.Logger;
 
-import org.openecomp.sdnc.sli.resource.dblib.config.BaseDBConfiguration;
-import org.openecomp.sdnc.sli.resource.dblib.pm.SQLExecutionMonitorObserver;
+import org.onap.ccsdk.sli.core.dblib.config.BaseDBConfiguration;
+import org.onap.ccsdk.sli.core.dblib.pm.SQLExecutionMonitorObserver;
 
 
 public class TerminatingCachedDataSource extends CachedDataSource implements SQLExecutionMonitorObserver {
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/config/BaseDBConfiguration.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/BaseDBConfiguration.java
similarity index 67%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/config/BaseDBConfiguration.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/BaseDBConfiguration.java
index 976b1cf..4b738d4 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/config/BaseDBConfiguration.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/BaseDBConfiguration.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,25 +18,25 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib.config;
+package org.onap.ccsdk.sli.core.dblib.config;
 
 import java.util.Properties;
 
 public abstract class BaseDBConfiguration {
-	public static final String DATABASE_TYPE	= "org.openecomp.sdnc.sli.dbtype";
-	public static final String DATABASE_URL		= "org.openecomp.sdnc.sli.jdbc.url";
-	public static final String DATABASE_NAME	= "org.openecomp.sdnc.sli.jdbc.database";
-	public static final String CONNECTION_NAME	= "org.openecomp.sdnc.sli.jdbc.connection.name";
-	public static final String DATABASE_USER 	= "org.openecomp.sdnc.sli.jdbc.user";
-	public static final String DATABASE_PSSWD	= "org.openecomp.sdnc.sli.jdbc.password";
-	public static final String CONNECTION_TIMEOUT="org.openecomp.sdnc.sli.jdbc.connection.timeout";
-	public static final String REQUEST_TIMEOUT	= "org.openecomp.sdnc.sli.jdbc.request.timeout";
-	public static final String MIN_LIMIT		= "org.openecomp.sdnc.sli.jdbc.limit.min";
-	public static final String MAX_LIMIT		= "org.openecomp.sdnc.sli.jdbc.limit.max";
-	public static final String INIT_LIMIT		= "org.openecomp.sdnc.sli.jdbc.limit.init";
-	public static final String DATABASE_HOSTS   = "org.openecomp.sdnc.sli.jdbc.hosts";
+	public static final String DATABASE_TYPE	= "org.onap.ccsdk.sli.dbtype";
+	public static final String DATABASE_URL		= "org.onap.ccsdk.sli.jdbc.url";
+	public static final String DATABASE_NAME	= "org.onap.ccsdk.sli.jdbc.database";
+	public static final String CONNECTION_NAME	= "org.onap.ccsdk.sli.jdbc.connection.name";
+	public static final String DATABASE_USER 	= "org.onap.ccsdk.sli.jdbc.user";
+	public static final String DATABASE_PSSWD	= "org.onap.ccsdk.sli.jdbc.password";
+	public static final String CONNECTION_TIMEOUT="org.onap.ccsdk.sli.jdbc.connection.timeout";
+	public static final String REQUEST_TIMEOUT	= "org.onap.ccsdk.sli.jdbc.request.timeout";
+	public static final String MIN_LIMIT		= "org.onap.ccsdk.sli.jdbc.limit.min";
+	public static final String MAX_LIMIT		= "org.onap.ccsdk.sli.jdbc.limit.max";
+	public static final String INIT_LIMIT		= "org.onap.ccsdk.sli.jdbc.limit.init";
+	public static final String DATABASE_HOSTS   = "org.onap.ccsdk.sli.jdbc.hosts";
 
-	
+
 	protected final Properties props;
 
 	public BaseDBConfiguration(Properties properties) {
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/config/DbConfigPool.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/DbConfigPool.java
similarity index 94%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/config/DbConfigPool.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/DbConfigPool.java
index 117f932..21fdab2 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/config/DbConfigPool.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/DbConfigPool.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib.config;
+package org.onap.ccsdk.sli.core.dblib.config;
 
 import java.util.ArrayList;
 import java.util.Properties;
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/config/JDBCConfiguration.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/JDBCConfiguration.java
similarity index 91%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/config/JDBCConfiguration.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/JDBCConfiguration.java
index cb6ea3e..fea1035 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/config/JDBCConfiguration.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/JDBCConfiguration.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib.config;
+package org.onap.ccsdk.sli.core.dblib.config;
 
 import java.util.Properties;
 
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/factory/AbstractDBResourceManagerFactory.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/factory/AbstractDBResourceManagerFactory.java
similarity index 87%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/factory/AbstractDBResourceManagerFactory.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/factory/AbstractDBResourceManagerFactory.java
index f4291a7..e88734d 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/factory/AbstractDBResourceManagerFactory.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/factory/AbstractDBResourceManagerFactory.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,9 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib.factory;
+package org.onap.ccsdk.sli.core.dblib.factory;
 
-import org.openecomp.sdnc.sli.resource.dblib.jdbc.JdbcDbResourceManagerFactory;
+import org.onap.ccsdk.sli.core.dblib.jdbc.JdbcDbResourceManagerFactory;
 
 /**
  * @version $Revision: 1.1 $
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/factory/AbstractResourceManagerFactory.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/factory/AbstractResourceManagerFactory.java
similarity index 84%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/factory/AbstractResourceManagerFactory.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/factory/AbstractResourceManagerFactory.java
index 0f58a3f..6fc7e7a 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/factory/AbstractResourceManagerFactory.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/factory/AbstractResourceManagerFactory.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,20 +18,20 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib.factory;
+package org.onap.ccsdk.sli.core.dblib.factory;
 
 
 import java.sql.SQLException;
 import java.util.Set;
 import java.util.concurrent.Callable;
 
-import org.openecomp.sdnc.sli.resource.dblib.CachedDataSource;
-import org.openecomp.sdnc.sli.resource.dblib.CachedDataSourceFactory;
-import org.openecomp.sdnc.sli.resource.dblib.DBConfigException;
-import org.openecomp.sdnc.sli.resource.dblib.DBResourceManager;
-import org.openecomp.sdnc.sli.resource.dblib.config.BaseDBConfiguration;
-import org.openecomp.sdnc.sli.resource.dblib.config.DbConfigPool;
-import org.openecomp.sdnc.sli.resource.dblib.config.JDBCConfiguration;
+import org.onap.ccsdk.sli.core.dblib.CachedDataSource;
+import org.onap.ccsdk.sli.core.dblib.CachedDataSourceFactory;
+import org.onap.ccsdk.sli.core.dblib.DBConfigException;
+import org.onap.ccsdk.sli.core.dblib.DBResourceManager;
+import org.onap.ccsdk.sli.core.dblib.config.BaseDBConfiguration;
+import org.onap.ccsdk.sli.core.dblib.config.DbConfigPool;
+import org.onap.ccsdk.sli.core.dblib.config.JDBCConfiguration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/factory/DBConfigFactory.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/factory/DBConfigFactory.java
similarity index 90%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/factory/DBConfigFactory.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/factory/DBConfigFactory.java
index 8aadcae..3caa776 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/factory/DBConfigFactory.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/factory/DBConfigFactory.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,19 +18,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib.factory;
+package org.onap.ccsdk.sli.core.dblib.factory;
 
 
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.Properties;
 
+import org.onap.ccsdk.sli.core.dblib.config.BaseDBConfiguration;
+import org.onap.ccsdk.sli.core.dblib.config.DbConfigPool;
+import org.onap.ccsdk.sli.core.dblib.config.JDBCConfiguration;
 import org.slf4j.LoggerFactory;
 
-import org.openecomp.sdnc.sli.resource.dblib.config.BaseDBConfiguration;
-import org.openecomp.sdnc.sli.resource.dblib.config.DbConfigPool;
-import org.openecomp.sdnc.sli.resource.dblib.config.JDBCConfiguration;
-
 /**
  * @version $Revision: 1.1 $
  * Change Log
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/factory/FactoryNotDefinedException.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/factory/FactoryNotDefinedException.java
similarity index 92%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/factory/FactoryNotDefinedException.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/factory/FactoryNotDefinedException.java
index e38cd35..b6383a5 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/factory/FactoryNotDefinedException.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/factory/FactoryNotDefinedException.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib.factory;
+package org.onap.ccsdk.sli.core.dblib.factory;
 
 
 /**
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/jdbc/JdbcDBCachedDataSource.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/jdbc/JdbcDBCachedDataSource.java
similarity index 95%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/jdbc/JdbcDBCachedDataSource.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/jdbc/JdbcDBCachedDataSource.java
index 90c76f6..c024d00 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/jdbc/JdbcDBCachedDataSource.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/jdbc/JdbcDBCachedDataSource.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib.jdbc;
+package org.onap.ccsdk.sli.core.dblib.jdbc;
 
 import java.sql.Connection;
 import java.sql.PreparedStatement;
@@ -27,13 +27,13 @@
 
 import org.apache.tomcat.jdbc.pool.DataSource;
 import org.apache.tomcat.jdbc.pool.PoolProperties;
+import org.onap.ccsdk.sli.core.dblib.CachedDataSource;
+import org.onap.ccsdk.sli.core.dblib.DBConfigException;
+import org.onap.ccsdk.sli.core.dblib.config.BaseDBConfiguration;
+import org.onap.ccsdk.sli.core.dblib.config.JDBCConfiguration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.openecomp.sdnc.sli.resource.dblib.CachedDataSource;
-import org.openecomp.sdnc.sli.resource.dblib.DBConfigException;
-import org.openecomp.sdnc.sli.resource.dblib.config.BaseDBConfiguration;
-import org.openecomp.sdnc.sli.resource.dblib.config.JDBCConfiguration;
 import com.mysql.jdbc.Driver;
 
 
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/jdbc/JdbcDbResourceManagerFactory.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/jdbc/JdbcDbResourceManagerFactory.java
similarity index 90%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/jdbc/JdbcDbResourceManagerFactory.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/jdbc/JdbcDbResourceManagerFactory.java
index 84399df..978de0e 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/jdbc/JdbcDbResourceManagerFactory.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/jdbc/JdbcDbResourceManagerFactory.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib.jdbc;
+package org.onap.ccsdk.sli.core.dblib.jdbc;
 
 
 import java.sql.SQLException;
@@ -32,13 +32,13 @@
 import java.util.concurrent.Executors;
 import java.util.concurrent.FutureTask;
 
-import org.openecomp.sdnc.sli.resource.dblib.CachedDataSource;
-import org.openecomp.sdnc.sli.resource.dblib.CachedDataSourceFactory;
-import org.openecomp.sdnc.sli.resource.dblib.DBResourceManager;
-import org.openecomp.sdnc.sli.resource.dblib.DataSourceComparator;
-import org.openecomp.sdnc.sli.resource.dblib.config.DbConfigPool;
-import org.openecomp.sdnc.sli.resource.dblib.config.JDBCConfiguration;
-import org.openecomp.sdnc.sli.resource.dblib.factory.AbstractResourceManagerFactory;
+import org.onap.ccsdk.sli.core.dblib.CachedDataSource;
+import org.onap.ccsdk.sli.core.dblib.CachedDataSourceFactory;
+import org.onap.ccsdk.sli.core.dblib.DBResourceManager;
+import org.onap.ccsdk.sli.core.dblib.DataSourceComparator;
+import org.onap.ccsdk.sli.core.dblib.config.DbConfigPool;
+import org.onap.ccsdk.sli.core.dblib.config.JDBCConfiguration;
+import org.onap.ccsdk.sli.core.dblib.factory.AbstractResourceManagerFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/jdbc/MySQLCachedDataSource.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/jdbc/MySQLCachedDataSource.java
similarity index 94%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/jdbc/MySQLCachedDataSource.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/jdbc/MySQLCachedDataSource.java
index a5482d0..4072098 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/jdbc/MySQLCachedDataSource.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/jdbc/MySQLCachedDataSource.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,15 +18,15 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib.jdbc;
+package org.onap.ccsdk.sli.core.dblib.jdbc;
 
 import java.sql.SQLFeatureNotSupportedException;
 import java.util.Properties;
 
-import org.openecomp.sdnc.sli.resource.dblib.CachedDataSource;
-import org.openecomp.sdnc.sli.resource.dblib.DBConfigException;
-import org.openecomp.sdnc.sli.resource.dblib.config.BaseDBConfiguration;
-import org.openecomp.sdnc.sli.resource.dblib.config.JDBCConfiguration;
+import org.onap.ccsdk.sli.core.dblib.CachedDataSource;
+import org.onap.ccsdk.sli.core.dblib.DBConfigException;
+import org.onap.ccsdk.sli.core.dblib.config.BaseDBConfiguration;
+import org.onap.ccsdk.sli.core.dblib.config.JDBCConfiguration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/pm/PollingWorker.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/pm/PollingWorker.java
similarity index 89%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/pm/PollingWorker.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/pm/PollingWorker.java
index de87fa7..b670a83 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/pm/PollingWorker.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/pm/PollingWorker.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib.pm;
+package org.onap.ccsdk.sli.core.dblib.pm;
 
 import java.util.Iterator;
 import java.util.Properties;
@@ -34,9 +34,9 @@
 import java.util.concurrent.atomic.AtomicLong;
 
 public class PollingWorker implements Runnable {
-	
+
 	private Logger LOGGER = LoggerFactory.getLogger(PollingWorker.class);
-	
+
 	private static PollingWorker self = null;
 
 	private LinkedBlockingQueue tasks = new LinkedBlockingQueue(100);
@@ -53,25 +53,25 @@
 			temp.register(new TestSample(starttime));
 		}
 	}
-	
+
 	public static void createInistance(Properties props){
 		self = new PollingWorker(props);
 	}
 
 	private PollingWorker(Properties ctxprops){
-		if(ctxprops==null ||  ctxprops.getProperty("org.openecomp.sdnc.dblib.pm") == null){
+		if(ctxprops==null ||  ctxprops.getProperty("org.onap.ccsdk.dblib.pm") == null){
 			enabled = false;
 		} else {
-			if("true".equalsIgnoreCase((String)ctxprops.getProperty("org.openecomp.sdnc.dblib.pm"))){
+			if("true".equalsIgnoreCase((String)ctxprops.getProperty("org.onap.ccsdk.dblib.pm"))){
 				enabled = true;
 			} else {
 				enabled = false;
 			}
 		}
 
-		interval = Long.parseLong(( ctxprops == null || ctxprops.getProperty("org.openecomp.sdnc.dblib.pm.interval") == null) ? "60" : (String)ctxprops.getProperty("org.openecomp.sdnc.dblib.pm.interval"));
+		interval = Long.parseLong(( ctxprops == null || ctxprops.getProperty("org.onap.ccsdk.dblib.pm.interval") == null) ? "60" : (String)ctxprops.getProperty("org.onap.ccsdk.dblib.pm.interval"));
 		// '0' bucket is to count exceptions
-		String sampling[] = ((ctxprops == null || ctxprops.getProperty("org.openecomp.sdnc.dblib.pm.sampling")==null) ? "0,2,5,10,20,50,100" :	(String)ctxprops.getProperty("org.openecomp.sdnc.dblib.pm.sampling")).split(",");
+		String sampling[] = ((ctxprops == null || ctxprops.getProperty("org.onap.ccsdk.dblib.pm.sampling")==null) ? "0,2,5,10,20,50,100" :	(String)ctxprops.getProperty("org.onap.ccsdk.dblib.pm.sampling")).split(",");
 
 		if(enabled){
 			bucketUnit = new int[sampling.length];
@@ -89,7 +89,7 @@
 			timer.schedule(new MyTimerTask(), interval*1000L, interval*1000L);
 		}
 	}
-	
+
 	private void register(TestSample object){
 		try {
 			tasks.add(object);
@@ -101,7 +101,7 @@
 	private void deRegister(TestSample object){
 		tasks.remove(object);
 	}
-	
+
 	public void run() {
 		for(;;){
 			Set data = new TreeSet();
@@ -147,14 +147,14 @@
 		}
 		LOGGER.info(sb.toString());
 	}
-	
+
 	class MyTimerTask extends TimerTask{
 
 		public void run() {
-			
+
 			clearReqister();
 		}
-		
+
 	}
 
 	private void consume(TestSample probe) {
@@ -163,9 +163,9 @@
 			counters[getBucket(probe.getDuration())].incrementAndGet();
 		}
 	}
-	
+
 	/*
-	 * This method is used to find the offset of the bucket in 
+	 * This method is used to find the offset of the bucket in
 	 * counters. 'counters' array is 1 size longer than bucketUnit,
 	 * hence by default it returns 'bucketUnit.length'
 	 */
@@ -177,7 +177,7 @@
 		}
 		return bucketUnit.length;
 	}
-	
+
 	private static boolean isEnabled() {
 		return enabled;
 	}
@@ -188,17 +188,17 @@
 	static class TestSample implements Comparable{
 		private long starttime;
 		private long endtime;
-		
+
 		public TestSample(long starttime) {
 			this.endtime = System.currentTimeMillis();
 			this.starttime = starttime;
 		}
-		
+
 		public long getDuration(){
 			return endtime - starttime;
 		}
 
-		public int compareTo(Object o) { 
+		public int compareTo(Object o) {
 			if(o instanceof TestSample){
 				TestSample x = (TestSample)o;
 				if(starttime < x.starttime)
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/pm/SQLExecutionMonitor.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/pm/SQLExecutionMonitor.java
similarity index 97%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/pm/SQLExecutionMonitor.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/pm/SQLExecutionMonitor.java
index c58c9db..bcd4360 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/pm/SQLExecutionMonitor.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/pm/SQLExecutionMonitor.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib.pm;
+package org.onap.ccsdk.sli.core.dblib.pm;
 
 import java.io.Serializable;
 import java.util.Arrays;
@@ -31,7 +31,7 @@
 import java.util.TreeSet;
 import java.util.concurrent.atomic.AtomicLong;
 
-import org.openecomp.sdnc.sli.resource.dblib.DBResourceObserver;
+import org.onap.ccsdk.sli.core.dblib.DBResourceObserver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/pm/SQLExecutionMonitorObserver.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/pm/SQLExecutionMonitorObserver.java
similarity index 92%
rename from dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/pm/SQLExecutionMonitorObserver.java
rename to dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/pm/SQLExecutionMonitorObserver.java
index 1f32975..c17696a 100644
--- a/dblib/provider/src/main/java/org/openecomp/sdnc/sli/resource/dblib/pm/SQLExecutionMonitorObserver.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/pm/SQLExecutionMonitorObserver.java
@@ -1,8 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openecomp
+ * onap
  * ================================================================================
- * Copyright (C) 2016 - 2017 AT&T
+ * Copyright (C) 2016 - 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.resource.dblib.pm;
+package org.onap.ccsdk.sli.core.dblib.pm;
 
 public interface SQLExecutionMonitorObserver {
 	public String getDbConnectionName();
diff --git a/dblib/provider/src/main/resources/dblib.properties b/dblib/provider/src/main/resources/dblib.properties
index ac295c7..3e62308 100755
--- a/dblib/provider/src/main/resources/dblib.properties
+++ b/dblib/provider/src/main/resources/dblib.properties
@@ -1,13 +1,13 @@
-org.openecomp.sdnc.sli.dbtype=jdbc
-org.openecomp.sdnc.sli.jdbc.hosts=sdnctldb01,sdnctldb02
-org.openecomp.sdnc.sli.jdbc.url=jdbc:mysql://DBHOST:3306/sdnctl
-org.openecomp.sdnc.sli.jdbc.database=sdnctl
-org.openecomp.sdnc.sli.jdbc.user={user for sdnctl}
-org.openecomp.sdnc.sli.jdbc.password={password for sdnctl}
-org.openecomp.sdnc.sli.jdbc.connection.name=sdnctldb01
+org.onap.ccsdk.sli.dbtype=jdbc
+org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01,sdnctldb02
+org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://DBHOST:3306/sdnctl
+org.onap.ccsdk.sli.jdbc.database=sdnctl
+org.onap.ccsdk.sli.jdbc.user={user for sdnctl}
+org.onap.ccsdk.sli.jdbc.password={password for sdnctl}
+org.onap.ccsdk.sli.jdbc.connection.name=sdnctldb01
 
-org.openecomp.sdnc.sli.jdbc.connection.timeout=50
-org.openecomp.sdnc.sli.jdbc.request.timeout=100
-org.openecomp.sdnc.sli.jdbc.limit.init=10
-org.openecomp.sdnc.sli.jdbc.limit.min=10
-org.openecomp.sdnc.sli.jdbc.limit.max=20
+org.onap.ccsdk.sli.jdbc.connection.timeout=50
+org.onap.ccsdk.sli.jdbc.request.timeout=100
+org.onap.ccsdk.sli.jdbc.limit.init=10
+org.onap.ccsdk.sli.jdbc.limit.min=10
+org.onap.ccsdk.sli.jdbc.limit.max=20
diff --git a/filters/features/src/main/resources/features.xml b/filters/features/src/main/resources/features.xml
index d0cadff..6837553 100644
--- a/filters/features/src/main/resources/features.xml
+++ b/filters/features/src/main/resources/features.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/filters/installer/src/assembly/assemble_installer_zip.xml b/filters/installer/src/assembly/assemble_installer_zip.xml
index 3a5c5f6..4fa3a8a 100644
--- a/filters/installer/src/assembly/assemble_installer_zip.xml
+++ b/filters/installer/src/assembly/assemble_installer_zip.xml
@@ -1,9 +1,8 @@
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/filters/installer/src/assembly/assemble_mvnrepo_zip.xml b/filters/installer/src/assembly/assemble_mvnrepo_zip.xml
index a9fca4d..0e669ca 100644
--- a/filters/installer/src/assembly/assemble_mvnrepo_zip.xml
+++ b/filters/installer/src/assembly/assemble_mvnrepo_zip.xml
@@ -1,9 +1,8 @@
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/filters/installer/src/main/resources/scripts/install-feature.sh b/filters/installer/src/main/resources/scripts/install-feature.sh
index 93236c5..c58b579 100644
--- a/filters/installer/src/main/resources/scripts/install-feature.sh
+++ b/filters/installer/src/main/resources/scripts/install-feature.sh
@@ -2,10 +2,9 @@
 
 ###
 # ============LICENSE_START=======================================================
-# openECOMP : SDN-C
+# ONAP : CCSDK
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights
-# 						reserved.
+# Copyright (C) 2017 ONAP
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/filters/provider/pom.xml b/filters/provider/pom.xml
index 83982c7..cfbb7b5 100755
--- a/filters/provider/pom.xml
+++ b/filters/provider/pom.xml
@@ -72,16 +72,11 @@
 				<extensions>true</extensions>
 				<configuration>
 					<instructions>
-						<Bundle-SymbolicName>org.openecomp.sdnc.filters</Bundle-SymbolicName>
-						<Bundle-Activator>org.openecomp.sdnc.filters.Activator</Bundle-Activator>
-						<Export-Package>org.openecomp.sdnc.filters</Export-Package>
-						<DynamicImport-Package>org.openecomp.sdnc.filters</DynamicImport-Package>
+						<Bundle-SymbolicName>org.onap.ccsdk.sli.core.filters</Bundle-SymbolicName>
+						<Bundle-Activator>org.onap.ccsdk.sli.core.filters.Activator</Bundle-Activator>
+						<Export-Package>org.onap.ccsdk.sli.core.filters</Export-Package>
+						<DynamicImport-Package>org.onap.ccsdk.sli.core.filters</DynamicImport-Package>
 						<Import-Package>javax.servlet.*,java.io.*,org.osgi.framework.*,org.slf4j.*,org.apache.commons.codec.binary.*</Import-Package>
-						<!--
-						<Import-Package>org.openecomp.sdnc.filters.filters.*,javax.servlet.*,java.io.*,org.osgi.framework.*,org.slf4j.*</Import-Package>
-						<Embed-Dependency>*;scope=compile|runtime;artifactId=!sli-common|org.eclipse.osgi|slf4j-api|jcl-over-slf4j|mysql-connector-java|xml-apis</Embed-Dependency>
-						<Import-Package>*</Import-Package>
-						-->
 						<Embed-Transitive>true</Embed-Transitive>
 					</instructions>
 				</configuration>
diff --git a/filters/provider/src/main/java/org/openecomp/sdnc/filters/Activator.java b/filters/provider/src/main/java/org/onap/ccsdk/sli/core/filters/Activator.java
similarity index 92%
rename from filters/provider/src/main/java/org/openecomp/sdnc/filters/Activator.java
rename to filters/provider/src/main/java/org/onap/ccsdk/sli/core/filters/Activator.java
index d21b309..c97142f 100644
--- a/filters/provider/src/main/java/org/openecomp/sdnc/filters/Activator.java
+++ b/filters/provider/src/main/java/org/onap/ccsdk/sli/core/filters/Activator.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.filters;
+package org.onap.ccsdk.sli.core.filters;
 
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
diff --git a/filters/provider/src/main/java/org/openecomp/sdnc/filters/LogFilter.java b/filters/provider/src/main/java/org/onap/ccsdk/sli/core/filters/LogFilter.java
similarity index 98%
rename from filters/provider/src/main/java/org/openecomp/sdnc/filters/LogFilter.java
rename to filters/provider/src/main/java/org/onap/ccsdk/sli/core/filters/LogFilter.java
index 809cfb2..9df74c3 100644
--- a/filters/provider/src/main/java/org/openecomp/sdnc/filters/LogFilter.java
+++ b/filters/provider/src/main/java/org/onap/ccsdk/sli/core/filters/LogFilter.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.filters;
+package org.onap.ccsdk.sli.core.filters;
 
 import java.io.IOException;
 import java.util.UUID;
diff --git a/filters/provider/src/main/java/org/openecomp/sdnc/filters/RequestResponseDbLoggingFilter.java b/filters/provider/src/main/java/org/onap/ccsdk/sli/core/filters/RequestResponseDbLoggingFilter.java
similarity index 97%
rename from filters/provider/src/main/java/org/openecomp/sdnc/filters/RequestResponseDbLoggingFilter.java
rename to filters/provider/src/main/java/org/onap/ccsdk/sli/core/filters/RequestResponseDbLoggingFilter.java
index 183301b..b187d95 100644
--- a/filters/provider/src/main/java/org/openecomp/sdnc/filters/RequestResponseDbLoggingFilter.java
+++ b/filters/provider/src/main/java/org/onap/ccsdk/sli/core/filters/RequestResponseDbLoggingFilter.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.filters;
+package org.onap.ccsdk.sli.core.filters;
 
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
@@ -42,9 +41,10 @@
 import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponseWrapper;
+
+import org.onap.ccsdk.sli.core.sli.MessageWriter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.openecomp.sdnc.sli.MessageWriter;
 
 public class RequestResponseDbLoggingFilter implements Filter {
 
diff --git a/filters/provider/src/main/java/org/openecomp/sdnc/filters/RequestResponseLoggingFilter.java b/filters/provider/src/main/java/org/onap/ccsdk/sli/core/filters/RequestResponseLoggingFilter.java
similarity index 97%
rename from filters/provider/src/main/java/org/openecomp/sdnc/filters/RequestResponseLoggingFilter.java
rename to filters/provider/src/main/java/org/onap/ccsdk/sli/core/filters/RequestResponseLoggingFilter.java
index b15932f..e4b0b7d 100644
--- a/filters/provider/src/main/java/org/openecomp/sdnc/filters/RequestResponseLoggingFilter.java
+++ b/filters/provider/src/main/java/org/onap/ccsdk/sli/core/filters/RequestResponseLoggingFilter.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.filters;
+package org.onap.ccsdk.sli.core.filters;
 
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
diff --git a/pom.xml b/pom.xml
index 8e9d10b..4a1a250 100755
--- a/pom.xml
+++ b/pom.xml
@@ -118,10 +118,9 @@
 
 					<inceptionYear>2017</inceptionYear>
 
-					<organizationName>AT&amp;T Intellectual Property. All rights
-						reserved.</organizationName>
+					<organizationName>ONAP</organizationName>
 
-					<projectName>openECOMP : SDN-C</projectName>
+					<projectName>ONAP : CCSDK</projectName>
 
 					<canUpdateCopyright>true</canUpdateCopyright>
 
diff --git a/sli/common/pom.xml b/sli/common/pom.xml
index 9a49e69..8b19891 100755
--- a/sli/common/pom.xml
+++ b/sli/common/pom.xml
@@ -108,8 +108,8 @@
 					<includes>**/*.xsd</includes>
 					<archive>
 						<manifest>
-							<mainClass>org.openecomp.sdnc.sli.SvcLogicParser</mainClass>
-							<packageName>org.openecomp.sdnc.sli</packageName>
+							<mainClass>org.onap.ccsdk.sli.core.sli.SvcLogicParser</mainClass>
+							<packageName>org.onap.ccsdk.sli.core.sli</packageName>
 							<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
 						</manifest>
 					</archive>
@@ -121,7 +121,7 @@
 				<extensions>true</extensions>
 				<configuration>
 					<instructions>
-						<Export-Package>org.openecomp.sdnc.sli;version=${project.version}</Export-Package>
+						<Export-Package>org.onap.ccsdk.sli.core.sli;version=${project.version}</Export-Package>
 						<Import-Package>*</Import-Package>
 						<Embed-Dependency>*;scope=compile;artifactId=commons-lang|commons-lang3</Embed-Dependency>
 						<Embed-Transitive>true</Embed-Transitive>
diff --git a/sli/common/src/main/antlr4/org/openecomp/sdnc/sli/ExprGrammar.g4 b/sli/common/src/main/antlr4/org/onap/ccsdk/sli/core/sli/ExprGrammar.g4
similarity index 87%
rename from sli/common/src/main/antlr4/org/openecomp/sdnc/sli/ExprGrammar.g4
rename to sli/common/src/main/antlr4/org/onap/ccsdk/sli/core/sli/ExprGrammar.g4
index 51f4016..1b026bb 100755
--- a/sli/common/src/main/antlr4/org/openecomp/sdnc/sli/ExprGrammar.g4
+++ b/sli/common/src/main/antlr4/org/onap/ccsdk/sli/core/sli/ExprGrammar.g4
@@ -1,9 +1,10 @@
+
 grammar ExprGrammar;
-	
+
 options {
 	language = Java;
 }
-	
+
 
 COMPAREOP : '==' | '!=' | '>' | '<' | '>=' | '<=';
 
@@ -36,12 +37,12 @@
 atom : constant | variable;
 
 
-expr : atom 
-     | parenExpr 
-     | multExpr 
-     | addExpr 
-     | compareExpr 
-     | relExpr 
+expr : atom
+     | parenExpr
+     | multExpr
+     | addExpr
+     | compareExpr
+     | relExpr
      | funcExpr;
 
 parenExpr : '(' expr ')';
@@ -58,9 +59,9 @@
 
 funcExpr : IDENTIFIER '(' expr (',' expr)* ')';
 
-							
 
 
- 
-        
+
+
+
 
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/BreakNodeException.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/BreakNodeException.java
similarity index 90%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/BreakNodeException.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/BreakNodeException.java
index 3e355ba..d85514c 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/BreakNodeException.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/BreakNodeException.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 public class BreakNodeException extends SvcLogicException {
 	
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/ConfigurationException.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/ConfigurationException.java
similarity index 90%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/ConfigurationException.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/ConfigurationException.java
index fa1308f..7a85310 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/ConfigurationException.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/ConfigurationException.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 public class ConfigurationException extends SvcLogicException {
 
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/DuplicateValueException.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/DuplicateValueException.java
similarity index 90%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/DuplicateValueException.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/DuplicateValueException.java
index beb22b0..24d06a2 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/DuplicateValueException.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/DuplicateValueException.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 public class DuplicateValueException extends SvcLogicException {
 
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/MessageWriter.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/MessageWriter.java
similarity index 93%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/MessageWriter.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/MessageWriter.java
index 5e5b621..b9f9e53 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/MessageWriter.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/MessageWriter.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -31,7 +30,7 @@
 
 import javax.sql.rowset.CachedRowSet;
 
-import org.openecomp.sdnc.sli.resource.dblib.DbLibService;
+import org.onap.ccsdk.sli.core.dblib.DbLibService;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.ServiceReference;
@@ -43,12 +42,12 @@
 
 	private static final Logger LOG = LoggerFactory.getLogger(MessageWriter.class);
 
-	private static final String DBLIB_SERVICE = "org.openecomp.sdnc.sli.resource.dblib.DBResourceManager";
+	private static final String DBLIB_SERVICE = "org.onap.ccsdk.sli.core.dblib.DBResourceManager";
 	private static final String SVCLOGIC_PROP_VAR = "SDNC_SLI_PROPERTIES";
 	private static final String SDNC_CONFIG_DIR = "SDNC_CONFIG_DIR";
 
-	private static final String INCOMING_PROPERTY_NAME = "org.openecomp.sdnc.sli.MessageWriter.writeIncomingRequests";
-	private static final String OUTGOING_PROPERTY_NAME = "org.openecomp.sdnc.sli.MessageWriter.writeOutgoingRequests";
+	private static final String INCOMING_PROPERTY_NAME = "org.onap.ccsdk.sli.MessageWriter.writeIncomingRequests";
+	private static final String OUTGOING_PROPERTY_NAME = "org.onap.ccsdk.sli.MessageWriter.writeOutgoingRequests";
 
 	private static final SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
 
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/MetricLogger.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/MetricLogger.java
similarity index 97%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/MetricLogger.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/MetricLogger.java
index 14b1f00..7d1250c 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/MetricLogger.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/MetricLogger.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,7 +21,7 @@
 /**
  *
  */
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.net.InetAddress;
 import java.text.DateFormat;
@@ -41,7 +40,7 @@
 public class MetricLogger {
 
     private static final Logger KARAF = LoggerFactory.getLogger(MetricLogger.class);
-    private static final Logger METRIC = LoggerFactory.getLogger("org.openecomp.sdnc.filters.metric");
+    private static final Logger METRIC = LoggerFactory.getLogger("org.onap.ccsdk.sli.filters.metric");
 
     public static final String BEGIN_TIMESTAMP = "X-ECOMP-BeginTimestamp";
     public static final String END_TIMESTAMP = "X-ECOMP-EndTimestamp";
@@ -187,7 +186,7 @@
     private void setCategoryLogLevel(String categoryLogLevel) {
 	MDC.put(CATEGORY_LOG_LEVEL, categoryLogLevel);
     }
-    
+
     public String getSeverity() {
         return MDC.get(SEVERITY);
     }
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicAdaptor.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicAdaptor.java
similarity index 90%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicAdaptor.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicAdaptor.java
index b4d62ab..3a3dd75 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicAdaptor.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicAdaptor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.util.Map;
 
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicAtom.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicAtom.java
similarity index 95%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicAtom.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicAtom.java
index 9ac6489..4791239 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicAtom.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicAtom.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.Serializable;
 import java.util.LinkedList;
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicBinaryExpression.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicBinaryExpression.java
similarity index 95%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicBinaryExpression.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicBinaryExpression.java
index 1d780d7..ee2a243 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicBinaryExpression.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicBinaryExpression.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.util.LinkedList;
 import java.util.List;
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicContext.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicContext.java
similarity index 97%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicContext.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicContext.java
index 79082af..b5892ef 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicContext.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicContext.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicDblibStore.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicDblibStore.java
similarity index 97%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicDblibStore.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicDblibStore.java
index d494eaa..ac656ff 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicDblibStore.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicDblibStore.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -38,8 +37,8 @@
 
 import javax.sql.rowset.CachedRowSet;
 
-import org.openecomp.sdnc.sli.resource.dblib.DBResourceManager;
-import org.openecomp.sdnc.sli.resource.dblib.DbLibService;
+import org.onap.ccsdk.sli.core.dblib.DBResourceManager;
+import org.onap.ccsdk.sli.core.dblib.DbLibService;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicException.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicException.java
similarity index 89%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicException.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicException.java
index c087b8a..198f8d5 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicException.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicException.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 public class SvcLogicException extends Exception {
 	
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicExprListener.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicExprListener.java
similarity index 87%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicExprListener.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicExprListener.java
index 4fef12f..0dda846 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicExprListener.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicExprListener.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,24 +18,24 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.util.LinkedList;
 import java.util.List;
 
 import org.antlr.v4.runtime.tree.TerminalNode;
-import org.openecomp.sdnc.sli.ExprGrammarParser.AddExprContext;
-import org.openecomp.sdnc.sli.ExprGrammarParser.AtomContext;
-import org.openecomp.sdnc.sli.ExprGrammarParser.CompareExprContext;
-import org.openecomp.sdnc.sli.ExprGrammarParser.ConstantContext;
-import org.openecomp.sdnc.sli.ExprGrammarParser.ExprContext;
-import org.openecomp.sdnc.sli.ExprGrammarParser.FuncExprContext;
-import org.openecomp.sdnc.sli.ExprGrammarParser.MultExprContext;
-import org.openecomp.sdnc.sli.ExprGrammarParser.ParenExprContext;
-import org.openecomp.sdnc.sli.ExprGrammarParser.RelExprContext;
-import org.openecomp.sdnc.sli.ExprGrammarParser.VariableContext;
-import org.openecomp.sdnc.sli.ExprGrammarParser.VariableLeadContext;
-import org.openecomp.sdnc.sli.ExprGrammarParser.VariableTermContext;
+import org.onap.ccsdk.sli.core.sli.ExprGrammarParser.AddExprContext;
+import org.onap.ccsdk.sli.core.sli.ExprGrammarParser.AtomContext;
+import org.onap.ccsdk.sli.core.sli.ExprGrammarParser.CompareExprContext;
+import org.onap.ccsdk.sli.core.sli.ExprGrammarParser.ConstantContext;
+import org.onap.ccsdk.sli.core.sli.ExprGrammarParser.ExprContext;
+import org.onap.ccsdk.sli.core.sli.ExprGrammarParser.FuncExprContext;
+import org.onap.ccsdk.sli.core.sli.ExprGrammarParser.MultExprContext;
+import org.onap.ccsdk.sli.core.sli.ExprGrammarParser.ParenExprContext;
+import org.onap.ccsdk.sli.core.sli.ExprGrammarParser.RelExprContext;
+import org.onap.ccsdk.sli.core.sli.ExprGrammarParser.VariableContext;
+import org.onap.ccsdk.sli.core.sli.ExprGrammarParser.VariableLeadContext;
+import org.onap.ccsdk.sli.core.sli.ExprGrammarParser.VariableTermContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicExprParserErrorListener.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicExprParserErrorListener.java
similarity index 92%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicExprParserErrorListener.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicExprParserErrorListener.java
index 4c7dd22..79979e7 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicExprParserErrorListener.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicExprParserErrorListener.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import org.antlr.v4.runtime.BaseErrorListener;
 import org.antlr.v4.runtime.RecognitionException;
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicExpression.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicExpression.java
similarity index 91%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicExpression.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicExpression.java
index a6af820..72a4384 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicExpression.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicExpression.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.Serializable;
 import java.util.Iterator;
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicExpressionFactory.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicExpressionFactory.java
similarity index 93%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicExpressionFactory.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicExpressionFactory.java
index cce8e04..18a433f 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicExpressionFactory.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicExpressionFactory.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -29,7 +28,7 @@
 import org.antlr.v4.runtime.CharStream;
 import org.antlr.v4.runtime.CommonTokenStream;
 import org.antlr.v4.runtime.tree.ParseTreeWalker;
-import org.openecomp.sdnc.sli.ExprGrammarParser.ExprContext;
+import org.onap.ccsdk.sli.core.sli.ExprGrammarParser.ExprContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicFunctionCall.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicFunctionCall.java
similarity index 93%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicFunctionCall.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicFunctionCall.java
index a98cf6b..fc89970 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicFunctionCall.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicFunctionCall.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 public class SvcLogicFunctionCall extends SvcLogicExpression {
 	
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicGraph.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicGraph.java
similarity index 96%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicGraph.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicGraph.java
index d3d6d95..158d815 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicGraph.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicGraph.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.PrintStream;
 import java.io.Serializable;
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicJavaPlugin.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicJavaPlugin.java
similarity index 89%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicJavaPlugin.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicJavaPlugin.java
index ac14cac..eaf4c71 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicJavaPlugin.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicJavaPlugin.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.util.Map;
 
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicJdbcStore.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicJdbcStore.java
similarity index 98%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicJdbcStore.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicJdbcStore.java
index b9e7f80..9aa0ddf 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicJdbcStore.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicJdbcStore.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicNode.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicNode.java
similarity index 98%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicNode.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicNode.java
index 6828e9a..3aab21f 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicNode.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicNode.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,7 +21,7 @@
 /**
  * 
  */
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.IOException;
 import java.io.PrintStream;
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicParser.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicParser.java
similarity index 99%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicParser.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicParser.java
index 398c28d..9ba5026 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicParser.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicParser.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.File;
 import java.io.InputStream;
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicParserException.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicParserException.java
similarity index 90%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicParserException.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicParserException.java
index ac9c515..a2d2ac4 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicParserException.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicParserException.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.IOException;
 
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicRecorder.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicRecorder.java
similarity index 88%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicRecorder.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicRecorder.java
index 8a23adf..1c85394 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicRecorder.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicRecorder.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.util.Map;
 
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicResource.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicResource.java
similarity index 94%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicResource.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicResource.java
index 5fc00f8..10d31f5 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicResource.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicResource.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.sql.SQLException;
 import java.util.Map;
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicStore.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicStore.java
similarity index 92%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicStore.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicStore.java
index 6959c86..6d2b99c 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicStore.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicStore.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.util.Properties;
 
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicStoreFactory.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicStoreFactory.java
similarity index 95%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicStoreFactory.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicStoreFactory.java
index 8b6618b..38b5b69 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicStoreFactory.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicStoreFactory.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.File;
 import java.io.FileInputStream;
diff --git a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicVariableTerm.java b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicVariableTerm.java
similarity index 92%
rename from sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicVariableTerm.java
rename to sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicVariableTerm.java
index 9ddc3c0..ac642a2 100644
--- a/sli/common/src/main/java/org/openecomp/sdnc/sli/SvcLogicVariableTerm.java
+++ b/sli/common/src/main/java/org/onap/ccsdk/sli/core/sli/SvcLogicVariableTerm.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 public class SvcLogicVariableTerm extends SvcLogicExpression {
 	
diff --git a/sli/common/src/main/resources/crAseNetwork.sql b/sli/common/src/main/resources/crAseNetwork.sql
index 4123117..d95891a 100644
--- a/sli/common/src/main/resources/crAseNetwork.sql
+++ b/sli/common/src/main/resources/crAseNetwork.sql
@@ -1,9 +1,8 @@
 ---
 -- ============LICENSE_START=======================================================
--- openECOMP : SDN-C
+-- ONAP : CCSDK
 -- ================================================================================
--- Copyright (C) 2017 AT&T Intellectual Property. All rights
--- 						reserved.
+-- Copyright (C) 2017 ONAP
 -- ================================================================================
 -- Licensed under the Apache License, Version 2.0 (the "License");
 -- you may not use this file except in compliance with the License.
diff --git a/sli/common/src/test/java/org/openecomp/sdnc/sli/SvcLogicContextTest.java b/sli/common/src/test/java/org/onap/ccsdk/sli/core/sli/SvcLogicContextTest.java
similarity index 92%
rename from sli/common/src/test/java/org/openecomp/sdnc/sli/SvcLogicContextTest.java
rename to sli/common/src/test/java/org/onap/ccsdk/sli/core/sli/SvcLogicContextTest.java
index 6e6656e..123083a 100644
--- a/sli/common/src/test/java/org/openecomp/sdnc/sli/SvcLogicContextTest.java
+++ b/sli/common/src/test/java/org/onap/ccsdk/sli/core/sli/SvcLogicContextTest.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
@@ -31,7 +30,7 @@
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
diff --git a/sli/common/src/test/java/org/openecomp/sdnc/sli/SvcLogicExpressionParserTest.java b/sli/common/src/test/java/org/onap/ccsdk/sli/core/sli/SvcLogicExpressionParserTest.java
similarity index 86%
rename from sli/common/src/test/java/org/openecomp/sdnc/sli/SvcLogicExpressionParserTest.java
rename to sli/common/src/test/java/org/onap/ccsdk/sli/core/sli/SvcLogicExpressionParserTest.java
index d6503b6..543bb1b 100644
--- a/sli/common/src/test/java/org/openecomp/sdnc/sli/SvcLogicExpressionParserTest.java
+++ b/sli/common/src/test/java/org/onap/ccsdk/sli/core/sli/SvcLogicExpressionParserTest.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,15 +18,15 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.BufferedReader;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 
-import org.openecomp.sdnc.sli.SvcLogicExprListener;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicExpressionFactory;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExprListener;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpressionFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/common/src/test/java/org/openecomp/sdnc/sli/SvcLogicParserTest.java b/sli/common/src/test/java/org/onap/ccsdk/sli/core/sli/SvcLogicParserTest.java
similarity index 89%
rename from sli/common/src/test/java/org/openecomp/sdnc/sli/SvcLogicParserTest.java
rename to sli/common/src/test/java/org/onap/ccsdk/sli/core/sli/SvcLogicParserTest.java
index e8ff2fe..2da8dd4 100644
--- a/sli/common/src/test/java/org/openecomp/sdnc/sli/SvcLogicParserTest.java
+++ b/sli/common/src/test/java/org/onap/ccsdk/sli/core/sli/SvcLogicParserTest.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,7 +21,7 @@
 /**
  * 
  */
-package org.openecomp.sdnc.sli;
+package org.onap.ccsdk.sli.core.sli;
 
 import java.io.BufferedReader;
 import java.io.InputStream;
@@ -30,10 +29,10 @@
 import java.net.URL;
 import java.util.LinkedList;
 
-import org.openecomp.sdnc.sli.SvcLogicParser;
-import org.openecomp.sdnc.sli.SvcLogicParserException;
-import org.openecomp.sdnc.sli.SvcLogicStore;
-import org.openecomp.sdnc.sli.SvcLogicStoreFactory;
+import org.onap.ccsdk.sli.core.sli.SvcLogicParser;
+import org.onap.ccsdk.sli.core.sli.SvcLogicParserException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicStore;
+import org.onap.ccsdk.sli.core.sli.SvcLogicStoreFactory;
 
 import junit.framework.TestCase;
 
@@ -44,7 +43,7 @@
 public class SvcLogicParserTest extends TestCase {
 
 	/**
-	 * Test method for {@link org.openecomp.sdnc.sli.SvcLogicParser#parse(java.lang.String)}.
+	 * Test method for {@link org.onap.ccsdk.sli.core.sli.SvcLogicParser#parse(java.lang.String)}.
 	 */
 	
 	
diff --git a/sli/common/src/test/resources/EvcActivateSvcLogic_v100.xml b/sli/common/src/test/resources/EvcActivateSvcLogic_v100.xml
index 097078a..308bda1 100644
--- a/sli/common/src/test/resources/EvcActivateSvcLogic_v100.xml
+++ b/sli/common/src/test/resources/EvcActivateSvcLogic_v100.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sli/common/src/test/resources/EvcPortSvcLogic_v100.xml b/sli/common/src/test/resources/EvcPortSvcLogic_v100.xml
index 0808442..8a9578b 100644
--- a/sli/common/src/test/resources/EvcPortSvcLogic_v100.xml
+++ b/sli/common/src/test/resources/EvcPortSvcLogic_v100.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sli/common/src/test/resources/ReleasePortSvcLogic_v101.xml b/sli/common/src/test/resources/ReleasePortSvcLogic_v101.xml
index 5a835b7..1cc6274 100644
--- a/sli/common/src/test/resources/ReleasePortSvcLogic_v101.xml
+++ b/sli/common/src/test/resources/ReleasePortSvcLogic_v101.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sli/common/src/test/resources/bad_neutron_logic_v11.xml b/sli/common/src/test/resources/bad_neutron_logic_v11.xml
index 4e1e8d9..f345538 100644
--- a/sli/common/src/test/resources/bad_neutron_logic_v11.xml
+++ b/sli/common/src/test/resources/bad_neutron_logic_v11.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sli/common/src/test/resources/mergetest.xml b/sli/common/src/test/resources/mergetest.xml
index 12e083c..3787441 100644
--- a/sli/common/src/test/resources/mergetest.xml
+++ b/sli/common/src/test/resources/mergetest.xml
@@ -1,9 +1,8 @@
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sli/common/src/test/resources/neutron_logic_v10.xml b/sli/common/src/test/resources/neutron_logic_v10.xml
index 9cd3312..730ebc2 100644
--- a/sli/common/src/test/resources/neutron_logic_v10.xml
+++ b/sli/common/src/test/resources/neutron_logic_v10.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sli/common/src/test/resources/nonsense.xml b/sli/common/src/test/resources/nonsense.xml
index 6122082..fdcfa34 100644
--- a/sli/common/src/test/resources/nonsense.xml
+++ b/sli/common/src/test/resources/nonsense.xml
@@ -1,9 +1,8 @@
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sli/common/src/test/resources/simplelogger.properties b/sli/common/src/test/resources/simplelogger.properties
index 6f70984..d88e59e 100644
--- a/sli/common/src/test/resources/simplelogger.properties
+++ b/sli/common/src/test/resources/simplelogger.properties
@@ -1,9 +1,8 @@
 ###
 # ============LICENSE_START=======================================================
-# openECOMP : SDN-C
+# ONAP : CCSDK
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights
-# 						reserved.
+# Copyright (C) 2017 ONAP
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/sli/common/src/test/resources/svclogic.properties b/sli/common/src/test/resources/svclogic.properties
index fa33146..fa7a204 100644
--- a/sli/common/src/test/resources/svclogic.properties
+++ b/sli/common/src/test/resources/svclogic.properties
@@ -1,9 +1,8 @@
 ###
 # ============LICENSE_START=======================================================
-# openECOMP : SDN-C
+# ONAP : CCSDK
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights
-# 						reserved.
+# Copyright (C) 2017 ONAP
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/sli/common/src/test/resources/svclogic.sh b/sli/common/src/test/resources/svclogic.sh
index 09f0637..f6c6f4b 100644
--- a/sli/common/src/test/resources/svclogic.sh
+++ b/sli/common/src/test/resources/svclogic.sh
@@ -2,10 +2,9 @@
 
 ###
 # ============LICENSE_START=======================================================
-# openECOMP : SDN-C
+# ONAP : CCSDK
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights
-# 						reserved.
+# Copyright (C) 2017 ONAP
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/sli/features/src/main/resources/features.xml b/sli/features/src/main/resources/features.xml
index 65fe187..6e47aee 100644
--- a/sli/features/src/main/resources/features.xml
+++ b/sli/features/src/main/resources/features.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sli/installer/src/assembly/assemble_installer_zip.xml b/sli/installer/src/assembly/assemble_installer_zip.xml
index 85e2e1e..761142e 100644
--- a/sli/installer/src/assembly/assemble_installer_zip.xml
+++ b/sli/installer/src/assembly/assemble_installer_zip.xml
@@ -1,9 +1,8 @@
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sli/installer/src/assembly/assemble_mvnrepo_zip.xml b/sli/installer/src/assembly/assemble_mvnrepo_zip.xml
index 4ea9bae..ae84fff 100644
--- a/sli/installer/src/assembly/assemble_mvnrepo_zip.xml
+++ b/sli/installer/src/assembly/assemble_mvnrepo_zip.xml
@@ -1,8 +1,7 @@
 <!-- ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License"); you may not
   	use this file except in compliance with the License. You may obtain a copy
diff --git a/sli/installer/src/main/resources/scripts/install-feature.sh b/sli/installer/src/main/resources/scripts/install-feature.sh
index 93236c5..c58b579 100644
--- a/sli/installer/src/main/resources/scripts/install-feature.sh
+++ b/sli/installer/src/main/resources/scripts/install-feature.sh
@@ -2,10 +2,9 @@
 
 ###
 # ============LICENSE_START=======================================================
-# openECOMP : SDN-C
+# ONAP : CCSDK
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights
-# 						reserved.
+# Copyright (C) 2017 ONAP
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/sli/pom.xml b/sli/pom.xml
index 2dda89f..27e6036 100755
--- a/sli/pom.xml
+++ b/sli/pom.xml
@@ -57,7 +57,7 @@
 		<module>installer</module>
 	</modules>
 	<organization>
-		<name>openECOMP</name>
+		<name>ONAP</name>
 	</organization>
 	<version>0.0.1-SNAPSHOT</version>
 
diff --git a/sli/provider/pom.xml b/sli/provider/pom.xml
index 69412bb..df6c7bc 100755
--- a/sli/provider/pom.xml
+++ b/sli/provider/pom.xml
@@ -69,15 +69,15 @@
 				<extensions>true</extensions>
 				<configuration>
 					<instructions>
-						<Bundle-Activator>org.openecomp.sdnc.sli.provider.SvcLogicActivator</Bundle-Activator>
-						<Export-Package>org.openecomp.sdnc.sli.provider;version=${project.version}</Export-Package>
+						<Bundle-Activator>org.onap.ccsdk.sli.core.sli.provider.SvcLogicActivator</Bundle-Activator>
+						<Export-Package>org.onap.ccsdk.sli.core.sli.provider;version=${project.version}</Export-Package>
 
 						<DynamicImport-Package>*</DynamicImport-Package>
 					    <!--
 						<Import-Package>org.openecomp.sdnc.sli.*,org.osgi.framework.*,org.slf4j.*,com.vmware.vim25.*,org.apache.xerces.*,com.mysql.jdbc.*,javax.net.ssl.*,org.xml.sax.*,javax.xml.bind.*</Import-Package>
                         -->
 
-                        <Import-Package>org.openecomp.sdnc.sli;version="${project.version}",*</Import-Package>
+                        <Import-Package>org.onap.ccsdk.sli.core.sli;version="${project.version}",*</Import-Package>
                         <!--
 						<Embed-Dependency>*;scope=compile|runtime;artifactId=!sli-common|org.eclipse.osgi|jcl-over-slf4j|xml-apis|mysql-connector-java</Embed-Dependency>
 						-->
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/BlockNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/BlockNodeExecutor.java
similarity index 86%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/BlockNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/BlockNodeExecutor.java
index f83154d..7132950 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/BlockNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/BlockNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,12 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/BreakNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/BreakNodeExecutor.java
similarity index 81%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/BreakNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/BreakNodeExecutor.java
index 0f8719c..ec0a5da 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/BreakNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/BreakNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,12 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.BreakNodeException;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.BreakNodeException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/CallNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/CallNodeExecutor.java
similarity index 90%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/CallNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/CallNodeExecutor.java
index 7b79c19..9498d67 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/CallNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/CallNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,14 +18,14 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicGraph;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicStore;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicGraph;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicStore;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ConfigureNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ConfigureNodeExecutor.java
similarity index 94%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ConfigureNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ConfigureNodeExecutor.java
index a3f2874..21b63d4 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ConfigureNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ConfigureNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,18 +18,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 
-import org.openecomp.sdnc.sli.SvcLogicAdaptor;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicAdaptor;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/DeleteNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/DeleteNodeExecutor.java
similarity index 89%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/DeleteNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/DeleteNodeExecutor.java
index 081cbcf..caba094 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/DeleteNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/DeleteNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,12 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicResource;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ExecuteNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ExecuteNodeExecutor.java
similarity index 92%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ExecuteNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ExecuteNodeExecutor.java
index 7ae4d0d..19868ed 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ExecuteNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ExecuteNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -28,11 +27,11 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
-import org.openecomp.sdnc.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ExistsNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ExistsNodeExecutor.java
similarity index 89%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ExistsNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ExistsNodeExecutor.java
index 688a86e..1798d50 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ExistsNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ExistsNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,12 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicResource;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ForNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ForNodeExecutor.java
similarity index 90%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ForNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ForNodeExecutor.java
index e9fdc55..a9ee007 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ForNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ForNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.BreakNodeException;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.BreakNodeException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/GetResourceNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/GetResourceNodeExecutor.java
similarity index 90%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/GetResourceNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/GetResourceNodeExecutor.java
index d431a18..7ecc76c 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/GetResourceNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/GetResourceNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicResource;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/IsAvailableNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/IsAvailableNodeExecutor.java
similarity index 89%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/IsAvailableNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/IsAvailableNodeExecutor.java
index 0df7368..7bc15d8 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/IsAvailableNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/IsAvailableNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,12 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicResource;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/MdsalHelper.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/MdsalHelper.java
similarity index 99%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/MdsalHelper.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/MdsalHelper.java
index 4c5ee06..a35c052 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/MdsalHelper.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/MdsalHelper.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.io.File;
 import java.io.FileInputStream;
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/NotifyNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/NotifyNodeExecutor.java
similarity index 89%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/NotifyNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/NotifyNodeExecutor.java
index 706014a..9f50547 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/NotifyNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/NotifyNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,12 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicResource;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/RecordNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/RecordNodeExecutor.java
similarity index 89%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/RecordNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/RecordNodeExecutor.java
index 8ba14d2..3c8c4c0 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/RecordNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/RecordNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,18 +18,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicRecorder;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicRecorder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ReleaseNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ReleaseNodeExecutor.java
similarity index 89%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ReleaseNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ReleaseNodeExecutor.java
index 0d8416c..4fee9aa 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ReleaseNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ReleaseNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,12 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicResource;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ReserveNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ReserveNodeExecutor.java
similarity index 89%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ReserveNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ReserveNodeExecutor.java
index f0bbda8..6d8035e 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ReserveNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ReserveNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicResource;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ReturnNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ReturnNodeExecutor.java
similarity index 86%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ReturnNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ReturnNodeExecutor.java
index 5cca471..b1a2b90 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/ReturnNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/ReturnNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,16 +18,16 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SaveNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SaveNodeExecutor.java
similarity index 91%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SaveNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SaveNodeExecutor.java
index 57eac7f..0dd5552 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SaveNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SaveNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,18 +18,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicResource;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SetNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SetNodeExecutor.java
similarity index 93%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SetNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SetNodeExecutor.java
index 013997e..18ca3d0 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SetNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SetNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.HashMap;
 import java.util.Iterator;
@@ -27,11 +26,11 @@
 import java.util.Map;
 import java.util.Set;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicExpressionFactory;
-import org.openecomp.sdnc.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpressionFactory;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicActivator.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicActivator.java
similarity index 94%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicActivator.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicActivator.java
index ae42e2c..3bc8f09 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicActivator.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicActivator.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -29,11 +28,11 @@
 import java.util.Map;
 import java.util.Properties;
 
-import org.openecomp.sdnc.sli.ConfigurationException;
-import org.openecomp.sdnc.sli.SvcLogicAdaptor;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicStore;
-import org.openecomp.sdnc.sli.SvcLogicStoreFactory;
+import org.onap.ccsdk.sli.core.sli.ConfigurationException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicAdaptor;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicStore;
+import org.onap.ccsdk.sli.core.sli.SvcLogicStoreFactory;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicAdaptorFactory.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicAdaptorFactory.java
similarity index 92%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicAdaptorFactory.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicAdaptorFactory.java
index aa8c005..1bc8e0f 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicAdaptorFactory.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicAdaptorFactory.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,11 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.HashMap;
 
-import org.openecomp.sdnc.sli.SvcLogicAdaptor;
+import org.onap.ccsdk.sli.core.sli.SvcLogicAdaptor;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.ServiceReference;
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicExpressionResolver.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicExpressionResolver.java
similarity index 95%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicExpressionResolver.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicExpressionResolver.java
index 5c17c79..01851cc 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicExpressionResolver.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicExpressionResolver.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,21 +18,21 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.List;
 
 import org.apache.commons.lang.StringUtils;
-import org.openecomp.sdnc.sli.SvcLogicAtom;
-import org.openecomp.sdnc.sli.SvcLogicAtom.AtomType;
-import org.openecomp.sdnc.sli.SvcLogicBinaryExpression;
-import org.openecomp.sdnc.sli.SvcLogicBinaryExpression.OperatorType;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicFunctionCall;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicVariableTerm;
+import org.onap.ccsdk.sli.core.sli.SvcLogicAtom;
+import org.onap.ccsdk.sli.core.sli.SvcLogicBinaryExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicFunctionCall;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicVariableTerm;
+import org.onap.ccsdk.sli.core.sli.SvcLogicAtom.AtomType;
+import org.onap.ccsdk.sli.core.sli.SvcLogicBinaryExpression.OperatorType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicNodeExecutor.java
similarity index 86%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicNodeExecutor.java
index 0c8166a..8d72f7a 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,16 +18,16 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.SvcLogicAdaptor;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicRecorder;
-import org.openecomp.sdnc.sli.SvcLogicResource;
-import org.openecomp.sdnc.sli.SvcLogicStore;
+import org.onap.ccsdk.sli.core.sli.SvcLogicAdaptor;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicRecorder;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
+import org.onap.ccsdk.sli.core.sli.SvcLogicStore;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.ServiceReference;
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicService.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicService.java
similarity index 93%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicService.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicService.java
index f30b3fc..cfba586 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicService.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicService.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,12 +18,12 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.Properties;
 
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
-import org.openecomp.sdnc.sli.SvcLogicException;
 
 public interface SvcLogicService {
 	
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicServiceImpl.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicServiceImpl.java
similarity index 94%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicServiceImpl.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicServiceImpl.java
index ba929ba..c0ee4c2 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SvcLogicServiceImpl.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicServiceImpl.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,18 +18,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.HashMap;
 import java.util.Properties;
 
+import org.onap.ccsdk.sli.core.sli.MetricLogger;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicGraph;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicStore;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
-import org.openecomp.sdnc.sli.MetricLogger;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicGraph;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicStore;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.InvalidSyntaxException;
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SwitchNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SwitchNodeExecutor.java
similarity index 86%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SwitchNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SwitchNodeExecutor.java
index e8ae7c8..ac0c428 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/SwitchNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SwitchNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,11 +18,11 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/UpdateNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/UpdateNodeExecutor.java
similarity index 90%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/UpdateNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/UpdateNodeExecutor.java
index 9eeab65..48510e6 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/UpdateNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/UpdateNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,18 +18,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicResource;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/WhileNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/WhileNodeExecutor.java
similarity index 88%
rename from sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/WhileNodeExecutor.java
rename to sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/WhileNodeExecutor.java
index 5bbab32..bc3cc77 100644
--- a/sli/provider/src/main/java/org/openecomp/sdnc/sli/provider/WhileNodeExecutor.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/WhileNodeExecutor.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.BreakNodeException;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.BreakNodeException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/BadPlugin.java b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/BadPlugin.java
similarity index 85%
rename from sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/BadPlugin.java
rename to sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/BadPlugin.java
index d1ab4cf..87273d0 100644
--- a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/BadPlugin.java
+++ b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/BadPlugin.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.Map;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
 
 
 public class BadPlugin implements SvcLogicJavaPlugin {
diff --git a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/ExecuteNodeExecutorTest.java b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/ExecuteNodeExecutorTest.java
similarity index 76%
rename from sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/ExecuteNodeExecutorTest.java
rename to sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/ExecuteNodeExecutorTest.java
index 3d43ee1..4c16222 100644
--- a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/ExecuteNodeExecutorTest.java
+++ b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/ExecuteNodeExecutorTest.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,17 +18,19 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.Map.Entry;
 
-import org.openecomp.sdnc.sli.DuplicateValueException;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicGraph;
-import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
-import org.openecomp.sdnc.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.DuplicateValueException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicGraph;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.provider.ExecuteNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.SvcLogicServiceImpl;
 
 import junit.framework.TestCase;
 
diff --git a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/LunchSelectorPlugin.java b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/LunchSelectorPlugin.java
similarity index 88%
rename from sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/LunchSelectorPlugin.java
rename to sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/LunchSelectorPlugin.java
index b9156bc..4d6b0b4 100644
--- a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/LunchSelectorPlugin.java
+++ b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/LunchSelectorPlugin.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.Map;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
 
 
 
diff --git a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/MdsalHelperTest.java b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/MdsalHelperTest.java
similarity index 92%
rename from sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/MdsalHelperTest.java
rename to sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/MdsalHelperTest.java
index a4e41bb..8057dbd 100644
--- a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/MdsalHelperTest.java
+++ b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/MdsalHelperTest.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import junit.framework.TestCase;
 
diff --git a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/MdsalHelperTesterUtil.java b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/MdsalHelperTesterUtil.java
similarity index 86%
rename from sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/MdsalHelperTesterUtil.java
rename to sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/MdsalHelperTesterUtil.java
index 01e333f..75517a1 100644
--- a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/MdsalHelperTesterUtil.java
+++ b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/MdsalHelperTesterUtil.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,9 +18,9 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
-import org.openecomp.sdnc.sli.provider.MdsalHelper;
+import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/PluginTest.java b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/PluginTest.java
similarity index 91%
rename from sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/PluginTest.java
rename to sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/PluginTest.java
index 035cd3e..08ab5ee 100644
--- a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/PluginTest.java
+++ b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/PluginTest.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,16 +18,18 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicGraph;
-import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
-import org.openecomp.sdnc.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicGraph;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.provider.ExecuteNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.SvcLogicExpressionResolver;
 
 import junit.framework.TestCase;
 
diff --git a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/SvcLogicExpressionResolverTest.java b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicExpressionResolverTest.java
similarity index 87%
rename from sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/SvcLogicExpressionResolverTest.java
rename to sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicExpressionResolverTest.java
index 6181548..1705e79 100644
--- a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/SvcLogicExpressionResolverTest.java
+++ b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicExpressionResolverTest.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,19 +18,19 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.io.BufferedReader;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicExprListener;
-import org.openecomp.sdnc.sli.SvcLogicExpression;
-import org.openecomp.sdnc.sli.SvcLogicExpressionFactory;
-import org.openecomp.sdnc.sli.SvcLogicGraph;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.provider.SvcLogicExpressionResolver;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExprListener;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpression;
+import org.onap.ccsdk.sli.core.sli.SvcLogicExpressionFactory;
+import org.onap.ccsdk.sli.core.sli.SvcLogicGraph;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.provider.SvcLogicExpressionResolver;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/SvcLogicGraphExecutorTest.java b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicGraphExecutorTest.java
similarity index 77%
rename from sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/SvcLogicGraphExecutorTest.java
rename to sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicGraphExecutorTest.java
index 2e8b35e..b54f284 100644
--- a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/SvcLogicGraphExecutorTest.java
+++ b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicGraphExecutorTest.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.io.BufferedReader;
 import java.io.InputStream;
@@ -31,33 +30,33 @@
 import java.util.Map;
 import java.util.Properties;
 
-import org.openecomp.sdnc.sli.MetricLogger;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicGraph;
-import org.openecomp.sdnc.sli.SvcLogicNode;
-import org.openecomp.sdnc.sli.SvcLogicParser;
-import org.openecomp.sdnc.sli.SvcLogicStore;
-import org.openecomp.sdnc.sli.SvcLogicStoreFactory;
-import org.openecomp.sdnc.sli.provider.BlockNodeExecutor;
-import org.openecomp.sdnc.sli.provider.CallNodeExecutor;
-import org.openecomp.sdnc.sli.provider.ConfigureNodeExecutor;
-import org.openecomp.sdnc.sli.provider.DeleteNodeExecutor;
-import org.openecomp.sdnc.sli.provider.ExecuteNodeExecutor;
-import org.openecomp.sdnc.sli.provider.ExistsNodeExecutor;
-import org.openecomp.sdnc.sli.provider.ForNodeExecutor;
-import org.openecomp.sdnc.sli.provider.GetResourceNodeExecutor;
-import org.openecomp.sdnc.sli.provider.IsAvailableNodeExecutor;
-import org.openecomp.sdnc.sli.provider.NotifyNodeExecutor;
-import org.openecomp.sdnc.sli.provider.RecordNodeExecutor;
-import org.openecomp.sdnc.sli.provider.ReleaseNodeExecutor;
-import org.openecomp.sdnc.sli.provider.ReserveNodeExecutor;
-import org.openecomp.sdnc.sli.provider.ReturnNodeExecutor;
-import org.openecomp.sdnc.sli.provider.SaveNodeExecutor;
-import org.openecomp.sdnc.sli.provider.SetNodeExecutor;
-import org.openecomp.sdnc.sli.provider.SvcLogicNodeExecutor;
-import org.openecomp.sdnc.sli.provider.SvcLogicServiceImpl;
-import org.openecomp.sdnc.sli.provider.SwitchNodeExecutor;
-import org.openecomp.sdnc.sli.provider.UpdateNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.MetricLogger;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicGraph;
+import org.onap.ccsdk.sli.core.sli.SvcLogicNode;
+import org.onap.ccsdk.sli.core.sli.SvcLogicParser;
+import org.onap.ccsdk.sli.core.sli.SvcLogicStore;
+import org.onap.ccsdk.sli.core.sli.SvcLogicStoreFactory;
+import org.onap.ccsdk.sli.core.sli.provider.BlockNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.CallNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.ConfigureNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.DeleteNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.ExecuteNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.ExistsNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.ForNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.GetResourceNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.IsAvailableNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.NotifyNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.RecordNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.ReleaseNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.ReserveNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.ReturnNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.SaveNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.SetNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.SvcLogicNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.SvcLogicServiceImpl;
+import org.onap.ccsdk.sli.core.sli.provider.SwitchNodeExecutor;
+import org.onap.ccsdk.sli.core.sli.provider.UpdateNodeExecutor;
 import org.osgi.framework.ServiceRegistration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/VoidDummyPlugin.java b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/VoidDummyPlugin.java
similarity index 79%
rename from sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/VoidDummyPlugin.java
rename to sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/VoidDummyPlugin.java
index 6c8214a..7c6eee9 100644
--- a/sli/provider/src/test/java/org/openecomp/sdnc/sli/provider/VoidDummyPlugin.java
+++ b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/VoidDummyPlugin.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,13 +18,13 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.provider;
+package org.onap.ccsdk.sli.core.sli.provider;
 
 import java.util.Map;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
 
 
 
diff --git a/sli/provider/src/test/resources/l3sdn_logic_v10.xml b/sli/provider/src/test/resources/l3sdn_logic_v10.xml
index d81b8b7..56e1a81 100644
--- a/sli/provider/src/test/resources/l3sdn_logic_v10.xml
+++ b/sli/provider/src/test/resources/l3sdn_logic_v10.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sli/provider/src/test/resources/simplelogger.properties b/sli/provider/src/test/resources/simplelogger.properties
index 3581395..cf74615 100644
--- a/sli/provider/src/test/resources/simplelogger.properties
+++ b/sli/provider/src/test/resources/simplelogger.properties
@@ -1,9 +1,8 @@
 ###
 # ============LICENSE_START=======================================================
-# openECOMP : SDN-C
+# ONAP : CCSDK
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights
-# 						reserved.
+# Copyright (C) 2017 ONAP
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/sli/provider/src/test/resources/svclogic.properties b/sli/provider/src/test/resources/svclogic.properties
index fa33146..fa7a204 100644
--- a/sli/provider/src/test/resources/svclogic.properties
+++ b/sli/provider/src/test/resources/svclogic.properties
@@ -1,9 +1,8 @@
 ###
 # ============LICENSE_START=======================================================
-# openECOMP : SDN-C
+# ONAP : CCSDK
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights
-# 						reserved.
+# Copyright (C) 2017 ONAP
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/sli/recording/pom.xml b/sli/recording/pom.xml
index 952f646..afd0adc 100755
--- a/sli/recording/pom.xml
+++ b/sli/recording/pom.xml
@@ -59,8 +59,8 @@
 				<extensions>true</extensions>
 				<configuration>
 					<instructions>
-						<Bundle-Activator>org.openecomp.sdnc.sli.recording.RecordingActivator</Bundle-Activator>
-						<Export-Package>org.openecomp.sdnc.sli.recording;version=${project.version}</Export-Package>
+						<Bundle-Activator>org.onap.ccsdk.sli.core.sli.recording.RecordingActivator</Bundle-Activator>
+						<Export-Package>org.onap.ccsdk.sli.core.sli.recording;version=${project.version}</Export-Package>
 						<Import-Package>*</Import-Package>
 						<Embed-Transitive>true</Embed-Transitive>
 					</instructions>
diff --git a/sli/recording/src/main/java/org/openecomp/sdnc/sli/recording/FileRecorder.java b/sli/recording/src/main/java/org/onap/ccsdk/sli/core/sli/recording/FileRecorder.java
similarity index 89%
rename from sli/recording/src/main/java/org/openecomp/sdnc/sli/recording/FileRecorder.java
rename to sli/recording/src/main/java/org/onap/ccsdk/sli/core/sli/recording/FileRecorder.java
index dc857b2..0c1712a 100644
--- a/sli/recording/src/main/java/org/openecomp/sdnc/sli/recording/FileRecorder.java
+++ b/sli/recording/src/main/java/org/onap/ccsdk/sli/core/sli/recording/FileRecorder.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.recording;
+package org.onap.ccsdk.sli.core.sli.recording;
 
 import java.io.File;
 import java.io.FileWriter;
@@ -30,9 +29,9 @@
 import java.util.Map;
 import java.util.TimeZone;
 
-import org.openecomp.sdnc.sli.ConfigurationException;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicRecorder;
+import org.onap.ccsdk.sli.core.sli.ConfigurationException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicRecorder;
 
 
 public class FileRecorder implements SvcLogicRecorder {
diff --git a/sli/recording/src/main/java/org/openecomp/sdnc/sli/recording/RecordingActivator.java b/sli/recording/src/main/java/org/onap/ccsdk/sli/core/sli/recording/RecordingActivator.java
similarity index 94%
rename from sli/recording/src/main/java/org/openecomp/sdnc/sli/recording/RecordingActivator.java
rename to sli/recording/src/main/java/org/onap/ccsdk/sli/core/sli/recording/RecordingActivator.java
index d6e016a..46cbd34 100644
--- a/sli/recording/src/main/java/org/openecomp/sdnc/sli/recording/RecordingActivator.java
+++ b/sli/recording/src/main/java/org/onap/ccsdk/sli/core/sli/recording/RecordingActivator.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.recording;
+package org.onap.ccsdk.sli.core.sli.recording;
 
 import java.util.LinkedList;
 
diff --git a/sli/recording/src/main/java/org/openecomp/sdnc/sli/recording/Slf4jRecorder.java b/sli/recording/src/main/java/org/onap/ccsdk/sli/core/sli/recording/Slf4jRecorder.java
similarity index 90%
rename from sli/recording/src/main/java/org/openecomp/sdnc/sli/recording/Slf4jRecorder.java
rename to sli/recording/src/main/java/org/onap/ccsdk/sli/core/sli/recording/Slf4jRecorder.java
index 5aad6f2..4ac524f 100644
--- a/sli/recording/src/main/java/org/openecomp/sdnc/sli/recording/Slf4jRecorder.java
+++ b/sli/recording/src/main/java/org/onap/ccsdk/sli/core/sli/recording/Slf4jRecorder.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.openecomp.sdnc.sli.recording;
+package org.onap.ccsdk.sli.core.sli.recording;
 
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
@@ -27,9 +26,9 @@
 import java.util.Map;
 import java.util.TimeZone;
 
-import org.openecomp.sdnc.sli.ConfigurationException;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicRecorder;
+import org.onap.ccsdk.sli.core.sli.ConfigurationException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicRecorder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sli/recording/src/main/resources/svclogic.properties b/sli/recording/src/main/resources/svclogic.properties
index 0cf3b41..723aed8 100644
--- a/sli/recording/src/main/resources/svclogic.properties
+++ b/sli/recording/src/main/resources/svclogic.properties
@@ -1,9 +1,8 @@
 ###
 # ============LICENSE_START=======================================================
-# openECOMP : SDN-C
+# ONAP : CCSDK
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights
-# 						reserved.
+# Copyright (C) 2017 ONAP
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/sliPluginUtils/features/src/main/resources/features.xml b/sliPluginUtils/features/src/main/resources/features.xml
index 212c397..be85b5e 100644
--- a/sliPluginUtils/features/src/main/resources/features.xml
+++ b/sliPluginUtils/features/src/main/resources/features.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sliPluginUtils/installer/src/assembly/assemble_installer_zip.xml b/sliPluginUtils/installer/src/assembly/assemble_installer_zip.xml
index 85e2e1e..761142e 100644
--- a/sliPluginUtils/installer/src/assembly/assemble_installer_zip.xml
+++ b/sliPluginUtils/installer/src/assembly/assemble_installer_zip.xml
@@ -1,9 +1,8 @@
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sliPluginUtils/installer/src/assembly/assemble_mvnrepo_zip.xml b/sliPluginUtils/installer/src/assembly/assemble_mvnrepo_zip.xml
index bf7805f..e78d136 100644
--- a/sliPluginUtils/installer/src/assembly/assemble_mvnrepo_zip.xml
+++ b/sliPluginUtils/installer/src/assembly/assemble_mvnrepo_zip.xml
@@ -1,9 +1,8 @@
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sliPluginUtils/installer/src/main/resources/scripts/install-feature.sh b/sliPluginUtils/installer/src/main/resources/scripts/install-feature.sh
index 93236c5..c58b579 100644
--- a/sliPluginUtils/installer/src/main/resources/scripts/install-feature.sh
+++ b/sliPluginUtils/installer/src/main/resources/scripts/install-feature.sh
@@ -2,10 +2,9 @@
 
 ###
 # ============LICENSE_START=======================================================
-# openECOMP : SDN-C
+# ONAP : CCSDK
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights
-# 						reserved.
+# Copyright (C) 2017 ONAP
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/DME2.java b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/DME2.java
index 3961271..29ce8c5 100644
--- a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/DME2.java
+++ b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/DME2.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,9 +22,9 @@
 
 import java.util.Map;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils.java b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils.java
index c73315f..9da1a47 100644
--- a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils.java
+++ b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,9 +35,9 @@
 import java.util.UUID;
 
 import org.apache.commons.lang3.StringUtils;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -46,7 +45,7 @@
  * A utility class used to streamline the interface between Java plugins,
  * the Service Logic Context, and Directed Graphs.
  * @version 7.0.1
- * @see org.openecomp.sdnc.sli.SvcLogicContext
+ * @see org.onap.ccsdk.sli.core.sli.SvcLogicContext
  */
 public class SliPluginUtils implements SvcLogicJavaPlugin {
 	public enum LogLevel {
diff --git a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtilsActivator.java b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtilsActivator.java
index e0568ab..923cde8 100644
--- a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtilsActivator.java
+++ b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtilsActivator.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SliStringUtils.java b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SliStringUtils.java
index 43af6f5..609de81 100644
--- a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SliStringUtils.java
+++ b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SliStringUtils.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,9 +25,9 @@
 import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SvcLogicContextList.java b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SvcLogicContextList.java
index 89a4a98..ba1c204 100644
--- a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SvcLogicContextList.java
+++ b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SvcLogicContextList.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,11 +27,11 @@
 import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
-import org.openecomp.sdnc.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
 
 /**
  * A utility class used to manage list manipulation in the context memory.
- * @see org.openecomp.sdnc.sli.SvcLogicContext
+ * @see org.onap.ccsdk.sli.core.sli.SvcLogicContext
  */
 public class SvcLogicContextList {
     /**
diff --git a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SvcLogicContextObject.java b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SvcLogicContextObject.java
index d79522f..049bdb2 100644
--- a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SvcLogicContextObject.java
+++ b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/SvcLogicContextObject.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,7 +20,7 @@
 
 package org.openecomp.sdnc.sli.SliPluginUtils;
 
-import org.openecomp.sdnc.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
 
 public interface SvcLogicContextObject {
 	public void writeToContext( SvcLogicContext ctx, String root );
diff --git a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/commondatastructures/YesNo.java b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/commondatastructures/YesNo.java
index 4d2fb4c..0597613 100644
--- a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/commondatastructures/YesNo.java
+++ b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/commondatastructures/YesNo.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/commondatastructures/package-info.java b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/commondatastructures/package-info.java
index 4a81d9a..a7850ee 100644
--- a/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/commondatastructures/package-info.java
+++ b/sliPluginUtils/provider/src/main/java/org/openecomp/sdnc/sli/SliPluginUtils/commondatastructures/package-info.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/CheckParametersTest.java b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/CheckParametersTest.java
index 318e464..796b29f 100644
--- a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/CheckParametersTest.java
+++ b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/CheckParametersTest.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,8 +24,8 @@
 import java.util.Map;
 
 import org.junit.Test;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/Dme2Test.java b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/Dme2Test.java
index d66b011..cb22fbc 100644
--- a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/Dme2Test.java
+++ b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/Dme2Test.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils_StaticFunctionsTest.java b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils_StaticFunctionsTest.java
index e69d086..c1e4bfa 100644
--- a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils_StaticFunctionsTest.java
+++ b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils_StaticFunctionsTest.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,8 +29,8 @@
 
 import org.junit.Before;
 import org.junit.Test;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils_ctxSortList.java b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils_ctxSortList.java
index b1cae54..6569bd3 100644
--- a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils_ctxSortList.java
+++ b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils_ctxSortList.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,8 +27,8 @@
 
 import org.junit.Before;
 import org.junit.Test;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils_ctxSortListTest.java b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils_ctxSortListTest.java
index e2fcb33..b527f1f 100644
--- a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils_ctxSortListTest.java
+++ b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliPluginUtils_ctxSortListTest.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,8 +27,8 @@
 
 import org.junit.Before;
 import org.junit.Test;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliStringUtilsTest.java b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliStringUtilsTest.java
index d57cefa..cf81959 100644
--- a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliStringUtilsTest.java
+++ b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SliStringUtilsTest.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,8 +32,8 @@
 
 import org.junit.Before;
 import org.junit.Test;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
 
 /**
  * @author km991u
diff --git a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SvcLogicContextListTest.java b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SvcLogicContextListTest.java
index 5d7bb24..2ef2bed 100644
--- a/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SvcLogicContextListTest.java
+++ b/sliPluginUtils/provider/src/test/java/org/openecomp/sdnc/sli/SliPluginUtils/SvcLogicContextListTest.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -28,7 +27,7 @@
 
 import org.junit.Before;
 import org.junit.Test;
-import org.openecomp.sdnc.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
 
 public class SvcLogicContextListTest {
 	//private static final Logger LOG = LoggerFactory.getLogger(SvcLogicContextTest.class);
diff --git a/sliapi/features/src/main/resources/features.xml b/sliapi/features/src/main/resources/features.xml
index 51f365a..4d07502 100644
--- a/sliapi/features/src/main/resources/features.xml
+++ b/sliapi/features/src/main/resources/features.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sliapi/installer/src/assembly/assemble_installer_zip.xml b/sliapi/installer/src/assembly/assemble_installer_zip.xml
index 85e2e1e..761142e 100644
--- a/sliapi/installer/src/assembly/assemble_installer_zip.xml
+++ b/sliapi/installer/src/assembly/assemble_installer_zip.xml
@@ -1,9 +1,8 @@
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sliapi/installer/src/assembly/assemble_mvnrepo_zip.xml b/sliapi/installer/src/assembly/assemble_mvnrepo_zip.xml
index 18700a1..aa1efbe 100644
--- a/sliapi/installer/src/assembly/assemble_mvnrepo_zip.xml
+++ b/sliapi/installer/src/assembly/assemble_mvnrepo_zip.xml
@@ -1,9 +1,8 @@
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/sliapi/installer/src/main/resources/scripts/install-feature.sh b/sliapi/installer/src/main/resources/scripts/install-feature.sh
index 93236c5..c58b579 100644
--- a/sliapi/installer/src/main/resources/scripts/install-feature.sh
+++ b/sliapi/installer/src/main/resources/scripts/install-feature.sh
@@ -2,10 +2,9 @@
 
 ###
 # ============LICENSE_START=======================================================
-# openECOMP : SDN-C
+# ONAP : CCSDK
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights
-# 						reserved.
+# Copyright (C) 2017 ONAP
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff --git a/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModule.java b/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModule.java
index e05103c..9ccb41d 100644
--- a/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModule.java
+++ b/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModule.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModuleFactory.java b/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModuleFactory.java
index fbd2036..6644903 100644
--- a/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModuleFactory.java
+++ b/sliapi/provider/src/main/java/org/opendaylight/yang/gen/v1/org/openecomp/sdnc/sliapi/provider/impl/rev140523/SliapiProviderModuleFactory.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/SliapiHelper.java b/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/SliapiHelper.java
index 4ad4f01..d2926fc 100644
--- a/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/SliapiHelper.java
+++ b/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/SliapiHelper.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,9 +20,9 @@
 
 package org.openecomp.sdnc.sliapi;
 
+import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper;
 import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.ExecuteGraphInputBuilder;
 import org.opendaylight.yang.gen.v1.org.openecomp.sdnc.sliapi.rev161110.execute.graph.input.SliParameterBuilder;
-import org.openecomp.sdnc.sli.provider.MdsalHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/sliapiProvider.java b/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/sliapiProvider.java
index 705277c..01cab58 100644
--- a/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/sliapiProvider.java
+++ b/sliapi/provider/src/main/java/org/openecomp/sdnc/sliapi/sliapiProvider.java
@@ -1,9 +1,8 @@
 /*-
  * ============LICENSE_START=======================================================
- * openECOMP : SDN-C
+ * ONAP : CCSDK
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights
- * 						reserved.
+ * Copyright (C) 2017 ONAP
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,6 +25,7 @@
 import java.util.Properties;
 import java.util.concurrent.Future;
 
+import org.onap.ccsdk.sli.core.sli.provider.SvcLogicService;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker;
@@ -63,7 +63,6 @@
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
-import org.openecomp.sdnc.sli.provider.SvcLogicService;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.ServiceReference;
diff --git a/sliapi/provider/src/main/resources/initial/sliapi-provider.xml b/sliapi/provider/src/main/resources/initial/sliapi-provider.xml
index fd2ccbe..d13152f 100644
--- a/sliapi/provider/src/main/resources/initial/sliapi-provider.xml
+++ b/sliapi/provider/src/main/resources/initial/sliapi-provider.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
diff --git a/src/site/apt/nodes.apt b/src/site/apt/nodes.apt
index b8ce987..099af24 100644
--- a/src/site/apt/nodes.apt
+++ b/src/site/apt/nodes.apt
@@ -1,9 +1,8 @@
 ~~~
 ~~ ============LICENSE_START=======================================================
-~~ openECOMP : SDN-C
+~~ ONAP : CCSDK
 ~~ ================================================================================
-~~ Copyright (C) 2017 AT&T Intellectual Property. All rights
-~~ 						reserved.
+~~ Copyright (C) 2017 ONAP
 ~~ ================================================================================
 ~~ Licensed under the Apache License, Version 2.0 (the "License");
 ~~ you may not use this file except in compliance with the License.
diff --git a/src/site/site.xml b/src/site/site.xml
index 7da1eb9..4824689 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <!--
   ============LICENSE_START=======================================================
-  openECOMP : SDN-C
+  ONAP : CCSDK
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights
-  						reserved.
+  Copyright (C) 2017 ONAP
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
