diff --git a/core/net/src/test/java/org/onosproject/net/intent/impl/InstallCoordinatorTest.java b/core/net/src/test/java/org/onosproject/net/intent/impl/InstallCoordinatorTest.java
index 7d1273b..58af6d7 100644
--- a/core/net/src/test/java/org/onosproject/net/intent/impl/InstallCoordinatorTest.java
+++ b/core/net/src/test/java/org/onosproject/net/intent/impl/InstallCoordinatorTest.java
@@ -87,7 +87,7 @@
         IntStream.range(0, 10).forEach(val -> {
             intents.add(new TestInstallableIntent(val));
         });
-        toInstall = new IntentData(toInstall, intents);
+        toInstall = IntentData.compiled(toInstall, intents);
         installCoordinator.installIntents(Optional.empty(), Optional.of(toInstall));
         Intent toInstallIntent = toInstall.intent();
         TestTools.assertAfter(INSTALL_DELAY, INSTALL_DURATION, () -> {
@@ -112,7 +112,7 @@
             intents.add(new TestInstallableIntent(val));
         });
 
-        toUninstall = new IntentData(toUninstall, intents);
+        toUninstall = IntentData.compiled(toUninstall, intents);
 
         installCoordinator.installIntents(Optional.of(toUninstall), Optional.empty());
         Intent toUninstallIntent = toUninstall.intent();
@@ -147,8 +147,8 @@
             intentsToInstall.add(new TestInstallableIntent(val));
         });
 
-        toUninstall = new IntentData(toUninstall, intentsToUninstall);
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToUninstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
 
         installCoordinator.installIntents(Optional.of(toUninstall), Optional.of(toInstall));
         Intent toInstallIntent = toInstall.intent();
@@ -194,8 +194,8 @@
             intentsToInstall.add(new TestInstallableIntent(val));
         });
 
-        toUninstall = new IntentData(toUninstall, intentsToUninstall);
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToUninstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
 
         installCoordinator.installIntents(Optional.of(toUninstall), Optional.of(toInstall));
 
diff --git a/core/net/src/test/java/org/onosproject/net/intent/impl/installer/DomainIntentInstallerTest.java b/core/net/src/test/java/org/onosproject/net/intent/impl/installer/DomainIntentInstallerTest.java
index 8de12e0..3ddfd72 100644
--- a/core/net/src/test/java/org/onosproject/net/intent/impl/installer/DomainIntentInstallerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/intent/impl/installer/DomainIntentInstallerTest.java
@@ -74,7 +74,7 @@
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
         IntentOperationContext<DomainIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
         operationContext = new IntentOperationContext(intentsToUninstall, intentsToInstall, context);
@@ -93,7 +93,7 @@
                                                 IntentState.WITHDRAWING,
                                                 new WallClockTimestamp());
         IntentData toInstall = null;
-        toUninstall = new IntentData(toUninstall, intentsToUninstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToUninstall);
         IntentOperationContext<DomainIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
         operationContext = new IntentOperationContext(intentsToUninstall, intentsToInstall, context);
@@ -111,11 +111,11 @@
         IntentData toUninstall = new IntentData(createP2PIntent(),
                                                 IntentState.INSTALLED,
                                                 new WallClockTimestamp());
-        toUninstall = new IntentData(toUninstall, intentsToUninstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToUninstall);
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
         IntentOperationContext<DomainIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
         operationContext = new IntentOperationContext(intentsToUninstall, intentsToInstall, context);
@@ -151,7 +151,7 @@
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
         IntentOperationContext<DomainIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
         operationContext = new IntentOperationContext(intentsToUninstall, intentsToInstall, context);
diff --git a/core/net/src/test/java/org/onosproject/net/intent/impl/installer/FlowObjectiveIntentInstallerTest.java b/core/net/src/test/java/org/onosproject/net/intent/impl/installer/FlowObjectiveIntentInstallerTest.java
index c8df722..1e00dad 100644
--- a/core/net/src/test/java/org/onosproject/net/intent/impl/installer/FlowObjectiveIntentInstallerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/intent/impl/installer/FlowObjectiveIntentInstallerTest.java
@@ -92,7 +92,7 @@
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
 
 
         IntentOperationContext<FlowObjectiveIntent> operationContext;
@@ -118,7 +118,7 @@
         IntentData toUninstall = new IntentData(createP2PIntent(),
                                               IntentState.WITHDRAWING,
                                               new WallClockTimestamp());
-        toUninstall = new IntentData(toUninstall, intentsToUninstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToUninstall);
         IntentOperationContext<FlowObjectiveIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
         operationContext = new IntentOperationContext(intentsToUninstall, intentsToInstall, context);
@@ -139,11 +139,11 @@
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
         IntentData toUninstall = new IntentData(createP2PIntent(),
                                                 IntentState.INSTALLED,
                                                 new WallClockTimestamp());
-        toUninstall = new IntentData(toUninstall, intentsToUninstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToUninstall);
 
         IntentOperationContext<FlowObjectiveIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
@@ -341,7 +341,7 @@
         IntentData toUninstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toUninstall = new IntentData(toUninstall, intentsToUninstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToUninstall);
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
         return new IntentOperationContext(intentsToUninstall, intentsToInstall, context);
     }
@@ -358,7 +358,7 @@
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
         return new IntentOperationContext(intentsToUninstall, intentsToInstall, context);
     }
diff --git a/core/net/src/test/java/org/onosproject/net/intent/impl/installer/FlowRuleIntentInstallerTest.java b/core/net/src/test/java/org/onosproject/net/intent/impl/installer/FlowRuleIntentInstallerTest.java
index e1e186a..712f8bf 100644
--- a/core/net/src/test/java/org/onosproject/net/intent/impl/installer/FlowRuleIntentInstallerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/intent/impl/installer/FlowRuleIntentInstallerTest.java
@@ -101,7 +101,7 @@
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
 
 
         IntentOperationContext<FlowRuleIntent> operationContext;
@@ -134,7 +134,7 @@
         IntentData toUninstall = new IntentData(createP2PIntent(),
                                               IntentState.WITHDRAWING,
                                               new WallClockTimestamp());
-        toUninstall = new IntentData(toUninstall, intentsToUninstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToUninstall);
 
 
         IntentOperationContext<FlowRuleIntent> operationContext;
@@ -166,11 +166,11 @@
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
         IntentData toUninstall = new IntentData(createP2PIntent(),
                                                 IntentState.INSTALLED,
                                                 new WallClockTimestamp());
-        toUninstall = new IntentData(toUninstall, intentsToUninstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToUninstall);
 
         IntentOperationContext<FlowRuleIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
@@ -209,11 +209,11 @@
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
         IntentData toUninstall = new IntentData(createP2PIntent(),
                                                 IntentState.INSTALLED,
                                                 new WallClockTimestamp());
-        toUninstall = new IntentData(toUninstall, intentsToUninstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToUninstall);
 
         IntentOperationContext<FlowRuleIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
@@ -240,11 +240,11 @@
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
         IntentData toUninstall = new IntentData(createP2PIntent(),
                                                 IntentState.INSTALLED,
                                                 new WallClockTimestamp());
-        toUninstall = new IntentData(toUninstall, intentsToUninstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToUninstall);
 
         IntentOperationContext<FlowRuleIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
@@ -293,7 +293,7 @@
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
 
 
         IntentOperationContext<FlowRuleIntent> operationContext;
@@ -317,11 +317,11 @@
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
         IntentData toUninstall = new IntentData(createP2PIntent(),
                                                 IntentState.INSTALLED,
                                                 new WallClockTimestamp());
-        toUninstall = new IntentData(toUninstall, intentsToUninstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToUninstall);
 
         IntentOperationContext<FlowRuleIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
@@ -355,11 +355,11 @@
         IntentData toInstall = new IntentData(createP2PIntentNonDisruptive(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
         IntentData toUninstall = new IntentData(createP2PIntentNonDisruptive(),
                                                 IntentState.INSTALLED,
                                                 new WallClockTimestamp());
-        toUninstall = new IntentData(toUninstall, intentsToUninstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToUninstall);
 
         IntentOperationContext<FlowRuleIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
diff --git a/core/net/src/test/java/org/onosproject/net/intent/impl/installer/ProtectionEndpointIntentInstallerTest.java b/core/net/src/test/java/org/onosproject/net/intent/impl/installer/ProtectionEndpointIntentInstallerTest.java
index 6ca2d62..70de4c3 100644
--- a/core/net/src/test/java/org/onosproject/net/intent/impl/installer/ProtectionEndpointIntentInstallerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/intent/impl/installer/ProtectionEndpointIntentInstallerTest.java
@@ -113,7 +113,7 @@
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
         IntentOperationContext<ProtectionEndpointIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
         operationContext = new IntentOperationContext(intentsToUninstall, intentsToInstall, context);
@@ -151,11 +151,11 @@
         IntentData toUninstall = new IntentData(createP2PIntent(),
                                                 IntentState.INSTALLED,
                                                 new WallClockTimestamp());
-        toUninstall = new IntentData(toUninstall, intentsToInstall);
+        toUninstall = IntentData.compiled(toUninstall, intentsToInstall);
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
         IntentOperationContext<ProtectionEndpointIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
         operationContext = new IntentOperationContext(intentsToUninstall, intentsToInstall, context);
@@ -192,7 +192,7 @@
         IntentData toInstall = new IntentData(createP2PIntent(),
                                               IntentState.INSTALLING,
                                               new WallClockTimestamp());
-        toInstall = new IntentData(toInstall, intentsToInstall);
+        toInstall = IntentData.compiled(toInstall, intentsToInstall);
         IntentOperationContext<ProtectionEndpointIntent> operationContext;
         IntentInstallationContext context = new IntentInstallationContext(toUninstall, toInstall);
         operationContext = new IntentOperationContext(intentsToUninstall, intentsToInstall, context);
