diff --git a/org.eclipse.om2m.binding.http/META-INF/MANIFEST.MF b/org.eclipse.om2m.binding.http/META-INF/MANIFEST.MF
index 95f8241..6c90436 100644
--- a/org.eclipse.om2m.binding.http/META-INF/MANIFEST.MF
+++ b/org.eclipse.om2m.binding.http/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: http
 Bundle-SymbolicName: org.eclipse.om2m.binding.http
 Bundle-Version: 1.1.0.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.om2m.commons,
  org.apache.httpcomponents.httpcore,
  org.apache.httpcomponents.httpclient
diff --git a/org.eclipse.om2m.commons/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.om2m.commons/.settings/org.eclipse.jdt.core.prefs
index f42de36..0c68a61 100644
--- a/org.eclipse.om2m.commons/.settings/org.eclipse.jdt.core.prefs
+++ b/org.eclipse.om2m.commons/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,7 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/org.eclipse.om2m.commons/META-INF/MANIFEST.MF b/org.eclipse.om2m.commons/META-INF/MANIFEST.MF
index 4d68ea7..5c4e15e 100644
--- a/org.eclipse.om2m.commons/META-INF/MANIFEST.MF
+++ b/org.eclipse.om2m.commons/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: Commons
 Bundle-SymbolicName: org.eclipse.om2m.commons
 Bundle-Version: 1.1.0.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: javax.persistence,javax.persistence.criteria,javax.per
  sistence.metamodel,javax.persistence.spi,org.eclipse.om2m.commons.con
  stants,org.eclipse.om2m.commons.entities,org.eclipse.om2m.commons.exc
diff --git a/org.eclipse.om2m.commons/src/main/java/org/eclipse/om2m/commons/utils/AcpUtils.java b/org.eclipse.om2m.commons/src/main/java/org/eclipse/om2m/commons/utils/AcpUtils.java
index 80e8be3..2eb4b5a 100644
--- a/org.eclipse.om2m.commons/src/main/java/org/eclipse/om2m/commons/utils/AcpUtils.java
+++ b/org.eclipse.om2m.commons/src/main/java/org/eclipse/om2m/commons/utils/AcpUtils.java
@@ -107,9 +107,11 @@
 
 			// For each originator in ACR
 			for (String originator : rule.getAccessControlOriginators()){
-				AccessControlOriginatorEntity originatorEntity = new AccessControlOriginatorEntity(originator);
-				ruleEntity.getAccessControlOriginators().add(originatorEntity);
-			}
+				for (String splitted: originator.split(" ")) {
+					AccessControlOriginatorEntity originatorEntity = new AccessControlOriginatorEntity(splitted);
+					ruleEntity.getAccessControlOriginators().add(originatorEntity);					
+				}
+			}	
 
 			result.add(ruleEntity);
 		}
diff --git a/org.eclipse.om2m.core/src/main/java/org/eclipse/om2m/core/controller/AEController.java b/org.eclipse.om2m.core/src/main/java/org/eclipse/om2m/core/controller/AEController.java
index 16fd44a..f74a30a 100644
--- a/org.eclipse.om2m.core/src/main/java/org/eclipse/om2m/core/controller/AEController.java
+++ b/org.eclipse.om2m.core/src/main/java/org/eclipse/om2m/core/controller/AEController.java
@@ -82,7 +82,7 @@
 		 * ae-ID					NP
 		 * pointOfAccess			O
 		 * ontologyRef				O
-		 * nodeLink					NP
+		 * nodeLink					NP -> O in new release
 		 */
 
 		ResponsePrimitive response = new ResponsePrimitive(request);
@@ -188,7 +188,7 @@
 		if (ae.getAEID() != null){
 			throw new NotPermittedAttrException("ae-id is Not Permitted");
 		}
-		// nodeLink					NP
+		// nodeLink					NP -> O
 		if (ae.getNodeLink() != null){
 			aeEntity.setNodeLink(ae.getNodeLink());
 		}
@@ -400,7 +400,7 @@
 		 * ae-ID					NP
 		 * pointOfAccess			O
 		 * ontologyRef				O
-		 * nodeLink					NP
+		 * nodeLink					NP -> O
 		 * requestReachability		O
 		 */
 		ResponsePrimitive response = new ResponsePrimitive(request);
@@ -459,9 +459,9 @@
 		if(ae.getAEID() != null){
 			throw new BadRequestException("AE ID is NP");
 		}
-		// nodeLink					NP
+		// nodeLink					NP -> O
 		if(ae.getNodeLink() != null){
-			throw new BadRequestException("NodeLink is NP");
+			aeEntity.setNodeLink(ae.getNodeLink());
 		}
 
 		AE modifiedAttributes = new AE();
diff --git a/org.eclipse.om2m.core/src/main/java/org/eclipse/om2m/core/notifier/Notifier.java b/org.eclipse.om2m.core/src/main/java/org/eclipse/om2m/core/notifier/Notifier.java
index 721b4cd..76b3f69 100644
--- a/org.eclipse.om2m.core/src/main/java/org/eclipse/om2m/core/notifier/Notifier.java
+++ b/org.eclipse.om2m.core/src/main/java/org/eclipse/om2m/core/notifier/Notifier.java
@@ -329,6 +329,9 @@
 		DBTransaction dbTransaction = dbs.getDbTransaction();
 		dbTransaction.open();
 		SubscriptionEntity subscriptionEntityToBeDeleted = dbs.getDAOFactory().getSubsciptionDAO().find(dbTransaction, resourceId);
+		// delete the resource in UriMapper table
+		UriMapper.deleteUri(subscriptionEntityToBeDeleted.getHierarchicalURI());
+		// delete the resource
 		dbs.getDAOFactory().getSubsciptionDAO().delete(dbTransaction, subscriptionEntityToBeDeleted);
 		dbTransaction.commit();
 		dbTransaction.close();
diff --git a/org.eclipse.om2m.datamapping.jaxb/src/main/resources/xml-binding.xml b/org.eclipse.om2m.datamapping.jaxb/src/main/resources/xml-binding.xml
index 7440e52..ceae564 100644
--- a/org.eclipse.om2m.datamapping.jaxb/src/main/resources/xml-binding.xml
+++ b/org.eclipse.om2m.datamapping.jaxb/src/main/resources/xml-binding.xml
@@ -81,12 +81,12 @@
 		<!-- Access Control resources -->
 		<java-type name="AccessControlPolicy">
 		</java-type>
-		<java-type name="AccessControlRule">
-			<java-attributes>
-				<xml-element java-attribute="accessControlOriginators"
-					name="acor" />
-			</java-attributes>
-		</java-type>
+		<!-- <java-type name="AccessControlRule"> -->
+		<!-- <java-attributes> -->
+		<!-- <xml-element java-attribute="accessControlOriginators" -->
+		<!-- name="acor" /> -->
+		<!-- </java-attributes> -->
+		<!-- </java-type> -->
 
 		<!-- Common resources -->
 		<java-type name="AE">
diff --git a/org.eclipse.om2m.persistence.eclipselink/src/main/java/org/eclipse/om2m/persistence/eclipselink/internal/dao/AccessControlPolicyDAO.java b/org.eclipse.om2m.persistence.eclipselink/src/main/java/org/eclipse/om2m/persistence/eclipselink/internal/dao/AccessControlPolicyDAO.java
index f8b8e9b..8c7b500 100644
--- a/org.eclipse.om2m.persistence.eclipselink/src/main/java/org/eclipse/om2m/persistence/eclipselink/internal/dao/AccessControlPolicyDAO.java
+++ b/org.eclipse.om2m.persistence.eclipselink/src/main/java/org/eclipse/om2m/persistence/eclipselink/internal/dao/AccessControlPolicyDAO.java
@@ -69,6 +69,19 @@
 		DBTransactionJPAImpl transaction = (DBTransactionJPAImpl) dbTransaction;
 		List<LabelEntity> lbls = processLabels(dbTransaction, resource.getLabelsEntities());
 		resource.setLabelsEntities(lbls);
+		
+		// persist self privilege
+		for(AccessControlRuleEntity acre : resource.getSelfPrivileges()) {
+			acre.setSelfAccessControlPolicy(resource);
+			transaction.getEm().persist(acre);
+		}
+		
+		// persist privileges
+		for(AccessControlRuleEntity acre : resource.getPrivileges()) {
+			acre.setAccessControlPolicy(resource);
+			transaction.getEm().persist(acre);
+		}
+		
 		transaction.getEm().merge(resource);
 	}
 
diff --git a/org.eclipse.om2m.persistence.eclipselink/src/main/java/org/eclipse/om2m/persistence/eclipselink/internal/dao/RemoteCSEDAO.java b/org.eclipse.om2m.persistence.eclipselink/src/main/java/org/eclipse/om2m/persistence/eclipselink/internal/dao/RemoteCSEDAO.java
index a63c86c..1835532 100644
--- a/org.eclipse.om2m.persistence.eclipselink/src/main/java/org/eclipse/om2m/persistence/eclipselink/internal/dao/RemoteCSEDAO.java
+++ b/org.eclipse.om2m.persistence.eclipselink/src/main/java/org/eclipse/om2m/persistence/eclipselink/internal/dao/RemoteCSEDAO.java
@@ -19,6 +19,7 @@
  *******************************************************************************/
 package org.eclipse.om2m.persistence.eclipselink.internal.dao;
 
+import org.eclipse.om2m.commons.entities.CSEBaseEntity;
 import org.eclipse.om2m.commons.entities.RemoteCSEEntity;
 import org.eclipse.om2m.persistence.eclipselink.internal.DBTransactionJPAImpl;
 import org.eclipse.om2m.persistence.service.DBTransaction;
@@ -40,7 +41,7 @@
 		}
 		
 		transaction.getEm().remove(resource);
-//		transaction.getEm().getEntityManagerFactory().getCache().evict(CSEBaseEntity.class);
+		transaction.getEm().getEntityManagerFactory().getCache().evict(CSEBaseEntity.class);
 	}
 	
 	@Override
diff --git a/org.eclipse.om2m.site.asn-cse/pom.xml b/org.eclipse.om2m.site.asn-cse/pom.xml
index c3e61a5..d4a8a21 100644
--- a/org.eclipse.om2m.site.asn-cse/pom.xml
+++ b/org.eclipse.om2m.site.asn-cse/pom.xml
@@ -57,9 +57,9 @@
 						<configuration>
 							<tasks>
 								<echo>Copying scripts into asn product</echo>
-								<copy file="${basedir}/script" tofile="${basedir}/target/products/asn-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/start.sh"/>
-								<copy file="${basedir}/script" tofile="${basedir}/target/products/asn-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/start.bat"/>
-								<copy file="${basedir}/log4j.configuration" tofile="${basedir}/target/products/asn-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/log4j.configuration"/>
+								<copy file="${basedir}/script" tofile="${basedir}/target/products/asn-cse/${tycho.env.osgi.os}/${tycho.env.osgi.ws}/${tycho.env.osgi.arch}/start.sh"/>
+								<copy file="${basedir}/script" tofile="${basedir}/target/products/asn-cse/${tycho.env.osgi.os}/${tycho.env.osgi.ws}/${tycho.env.osgi.arch}/start.bat"/>
+								<copy file="${basedir}/log4j.configuration" tofile="${basedir}/target/products/asn-cse/${tycho.env.osgi.os}/${tycho.env.osgi.ws}/${tycho.env.osgi.arch}/log4j.configuration"/>
 							</tasks>
 						</configuration>
 					</execution>
diff --git a/org.eclipse.om2m.site.in-cse/pom.xml b/org.eclipse.om2m.site.in-cse/pom.xml
index 6a96722..9e891e7 100644
--- a/org.eclipse.om2m.site.in-cse/pom.xml
+++ b/org.eclipse.om2m.site.in-cse/pom.xml
@@ -62,21 +62,21 @@
 							<tasks>
 								<echo>Copying scripts into in product</echo>
 								<copy file="${basedir}/script"
-									tofile="${basedir}/target/products/in-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/start.sh" />
+									tofile="${basedir}/target/products/in-cse/${tycho.env.osgi.os}/${tycho.env.osgi.ws}/${tycho.env.osgi.arch}/start.sh" />
 								<copy file="${basedir}/script"
-									tofile="${basedir}/target/products/in-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/start.bat" />
+									tofile="${basedir}/target/products/in-cse/${tycho.env.osgi.os}/${tycho.env.osgi.ws}/${tycho.env.osgi.arch}/start.bat" />
 								<copy file="${basedir}/log4j.configuration"
-									tofile="${basedir}/target/products/in-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/log4j.configuration" />
+									tofile="${basedir}/target/products/in-cse/${tycho.env.osgi.os}/${tycho.env.osgi.ws}/${tycho.env.osgi.arch}/log4j.configuration" />
 									
 								<copy
-									todir="${basedir}/target/products/in-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/configurations">
+									todir="${basedir}/target/products/in-cse/${tycho.env.osgi.os}/${tycho.env.osgi.ws}/${tycho.env.osgi.arch}/configurations">
 									<fileset dir="${basedir}/configurations" includes="**/*" />
 								</copy>
 								<copy file="${basedir}/libs/pax-confman-propsloader-0.2.3.jar"
 									todir="${basedir}/target/products/in-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/plugins/" />
 								
 								<propertyfile
-									file="${basedir}/target/products/in-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/configuration/config.ini">
+									file="${basedir}/target/products/in-cse/${tycho.env.osgi.os}/${tycho.env.osgi.ws}/${tycho.env.osgi.arch}/configuration/config.ini">
 									<entry key="osgi.bundles" type="string" operation="+"
 										value=", reference:file:pax-confman-propsloader-0.2.3.jar@1:start" />
 								</propertyfile>
diff --git a/org.eclipse.om2m.site.mn-cse/pom.xml b/org.eclipse.om2m.site.mn-cse/pom.xml
index fbfc696..a663e96 100644
--- a/org.eclipse.om2m.site.mn-cse/pom.xml
+++ b/org.eclipse.om2m.site.mn-cse/pom.xml
@@ -62,9 +62,9 @@
 							<target>
 								<echo>Copying scripts into mn product</echo>
 								<copy file="${basedir}/script"
-									tofile="${basedir}/target/products/mn-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/start.sh" />
+									tofile="${basedir}/target/products/mn-cse/${tycho.env.osgi.os}/${tycho.env.osgi.ws}/${tycho.env.osgi.arch}/start.sh" />
 								<copy file="${basedir}/script"
-									tofile="${basedir}/target/products/mn-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/start.bat" />
+									tofile="${basedir}/target/products/mn-cse/${tycho.env.osgi.os}/${tycho.env.osgi.ws}/${tycho.env.osgi.arch}/start.bat" />
 								<copy file="${basedir}/log4j.configuration"
 									tofile="${basedir}/target/products/mn-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/log4j.configuration" />
 								<!-- <copy file="${basedir}/libs/org.eclipse.equinox.cm_1.0.400.v20130327-1442.jar" 
@@ -73,13 +73,13 @@
 								<copy file="${basedir}/libs/pax-confman-propsloader-0.2.3.jar"
 									todir="${basedir}/target/products/mn-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/plugins/" />
 								<copy
-									todir="${basedir}/target/products/mn-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/configurations">
+									todir="${basedir}/target/products/mn-cse/${tycho.env.osgi.os}/${tycho.env.osgi.ws}/${tycho.env.osgi.arch}/configurations">
 									<fileset dir="${basedir}/configurations" includes="**/*" />
 								</copy>
 
 
 								<propertyfile
-									file="${basedir}/target/products/mn-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/configuration/config.ini">
+									file="${basedir}/target/products/mn-cse/${tycho.env.osgi.os}/${tycho.env.osgi.ws}/${tycho.env.osgi.arch}/configuration/config.ini">
 									<entry key="osgi.bundles" type="string" operation="+"
 										value=", reference:file:pax-confman-propsloader-0.2.3.jar@1:start" />
 								</propertyfile>
diff --git a/pom.xml b/pom.xml
index a2211f2..9ce3f0a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,9 +33,9 @@
 	</prerequisites>
 
 	<properties>
-		<java.version>1.7</java.version>
+		<java.version>1.8</java.version>
 		<maven.version>3.0</maven.version>
-		<tycho.version>0.20.0</tycho.version>
+		<tycho.version>0.22.0</tycho.version>
 		<tycho.test.jvmArgs>-Xmx512m -XX:MaxPermSize=256m</tycho.test.jvmArgs>
 	</properties>
 
diff --git a/protocols/org.eclipse.om2m.protocols.hue/org.eclipse.om2m.hue.impl/META-INF/MANIFEST.MF b/protocols/org.eclipse.om2m.protocols.hue/org.eclipse.om2m.hue.impl/META-INF/MANIFEST.MF
index 9a7bb2a..2dea450 100644
--- a/protocols/org.eclipse.om2m.protocols.hue/org.eclipse.om2m.hue.impl/META-INF/MANIFEST.MF
+++ b/protocols/org.eclipse.om2m.protocols.hue/org.eclipse.om2m.hue.impl/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: org.eclipse.om2m.hue.impl
 Bundle-SymbolicName: org.eclipse.om2m.hue.impl
 Bundle-Version: 1.1.0.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ClassPath: .,
  lib/json-simple-1.1.jar
 Service-Component: OSGI-INF/hue.basedriver.xml
