APEXCORE-702 Mark plugin interfaces as Evolving, and add them to plugin subpackage.
diff --git a/api/src/main/java/org/apache/apex/api/DAGSetupPlugin.java b/api/src/main/java/org/apache/apex/api/plugin/DAGSetupPlugin.java
similarity index 94%
rename from api/src/main/java/org/apache/apex/api/DAGSetupPlugin.java
rename to api/src/main/java/org/apache/apex/api/plugin/DAGSetupPlugin.java
index 3fc46bc..faa6798 100644
--- a/api/src/main/java/org/apache/apex/api/DAGSetupPlugin.java
+++ b/api/src/main/java/org/apache/apex/api/plugin/DAGSetupPlugin.java
@@ -16,9 +16,8 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.apex.api;
+package org.apache.apex.api.plugin;
 
-import java.io.Serializable;
 import java.util.Collection;
 
 import org.apache.hadoop.classification.InterfaceStability;
@@ -41,7 +40,7 @@
  * </ul>
  */
 @InterfaceStability.Evolving
-public interface DAGSetupPlugin extends ApexPlugin<DAGSetupPlugin.DAGSetupPluginContext>, Serializable
+public interface DAGSetupPlugin extends Plugin<DAGSetupPlugin.DAGSetupPluginContext>
 {
 
   /**
@@ -87,7 +86,7 @@
    */
   void postValidateDAG();
 
-  class DAGSetupPluginContext implements ApexPluginContext
+  class DAGSetupPluginContext implements PluginContext
   {
     private final DAG dag;
     private final Configuration conf;
diff --git a/api/src/main/java/org/apache/apex/api/ApexPlugin.java b/api/src/main/java/org/apache/apex/api/plugin/Plugin.java
similarity index 82%
rename from api/src/main/java/org/apache/apex/api/ApexPlugin.java
rename to api/src/main/java/org/apache/apex/api/plugin/Plugin.java
index b9a8b78..ffe52ea 100644
--- a/api/src/main/java/org/apache/apex/api/ApexPlugin.java
+++ b/api/src/main/java/org/apache/apex/api/plugin/Plugin.java
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.apex.api;
+package org.apache.apex.api.plugin;
+
+import org.apache.hadoop.classification.InterfaceStability;
 
 import com.datatorrent.api.Component;
 
@@ -24,6 +26,7 @@
  * Marker interface for ApexPlugins.
  * @param <T>
  */
-public interface ApexPlugin<T extends ApexPluginContext> extends Component<T>
+@InterfaceStability.Evolving
+public interface Plugin<T extends PluginContext> extends Component<T>
 {
 }
diff --git a/api/src/main/java/org/apache/apex/api/ApexPluginContext.java b/api/src/main/java/org/apache/apex/api/plugin/PluginContext.java
similarity index 84%
rename from api/src/main/java/org/apache/apex/api/ApexPluginContext.java
rename to api/src/main/java/org/apache/apex/api/plugin/PluginContext.java
index 1b72f63..2bdaf00 100644
--- a/api/src/main/java/org/apache/apex/api/ApexPluginContext.java
+++ b/api/src/main/java/org/apache/apex/api/plugin/PluginContext.java
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.apex.api;
+package org.apache.apex.api.plugin;
+
+import org.apache.hadoop.classification.InterfaceStability;
 
 import com.datatorrent.api.Context;
 
@@ -24,6 +26,7 @@
  * Marker interface for Context used by ApexPlugins. Plugin interfaces with
  * the Apex through the context.
  */
-public interface ApexPluginContext extends Context
+@InterfaceStability.Evolving
+public interface PluginContext extends Context
 {
 }
diff --git a/common/src/main/java/com/datatorrent/common/util/BaseDAGSetupPlugin.java b/common/src/main/java/org/apache/apex/common/util/BaseDAGSetupPlugin.java
similarity index 88%
rename from common/src/main/java/com/datatorrent/common/util/BaseDAGSetupPlugin.java
rename to common/src/main/java/org/apache/apex/common/util/BaseDAGSetupPlugin.java
index 7d26b89..9bc5d8e 100644
--- a/common/src/main/java/com/datatorrent/common/util/BaseDAGSetupPlugin.java
+++ b/common/src/main/java/org/apache/apex/common/util/BaseDAGSetupPlugin.java
@@ -16,14 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package com.datatorrent.common.util;
+package org.apache.apex.common.util;
 
-import org.apache.apex.api.DAGSetupPlugin;
+import org.apache.apex.api.plugin.DAGSetupPlugin;
+import org.apache.hadoop.classification.InterfaceStability;
 
 /**
  * Base class for DAGSetupPlugin implementations that provides empty implementations
  * for all interface methods.
  */
+@InterfaceStability.Evolving
 public class BaseDAGSetupPlugin implements DAGSetupPlugin
 {
   @Override
diff --git a/engine/src/main/java/com/datatorrent/stram/StreamingAppMasterService.java b/engine/src/main/java/com/datatorrent/stram/StreamingAppMasterService.java
index b15c98f..4e4f501 100644
--- a/engine/src/main/java/com/datatorrent/stram/StreamingAppMasterService.java
+++ b/engine/src/main/java/com/datatorrent/stram/StreamingAppMasterService.java
@@ -42,8 +42,8 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.apex.engine.api.DAGExecutionPlugin;
-import org.apache.apex.engine.api.PluginLocator;
+import org.apache.apex.engine.api.plugin.DAGExecutionPlugin;
+import org.apache.apex.engine.api.plugin.PluginLocator;
 import org.apache.apex.engine.plugin.ApexPluginDispatcher;
 import org.apache.apex.engine.plugin.DefaultApexPluginDispatcher;
 import org.apache.apex.engine.plugin.loaders.ChainedPluginLocator;
diff --git a/engine/src/main/java/com/datatorrent/stram/StreamingContainerManager.java b/engine/src/main/java/com/datatorrent/stram/StreamingContainerManager.java
index 18d6787..92fce54 100644
--- a/engine/src/main/java/com/datatorrent/stram/StreamingContainerManager.java
+++ b/engine/src/main/java/com/datatorrent/stram/StreamingContainerManager.java
@@ -178,9 +178,9 @@
 import net.engio.mbassy.bus.MBassador;
 import net.engio.mbassy.bus.config.BusConfiguration;
 
-import static org.apache.apex.engine.api.DAGExecutionPluginContext.COMMIT_EVENT;
-import static org.apache.apex.engine.api.DAGExecutionPluginContext.HEARTBEAT;
-import static org.apache.apex.engine.api.DAGExecutionPluginContext.STRAM_EVENT;
+import static org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.COMMIT_EVENT;
+import static org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.HEARTBEAT;
+import static org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.STRAM_EVENT;
 
 /**
  * Tracks topology provisioning/allocation to containers<p>
diff --git a/engine/src/main/java/com/datatorrent/stram/plan/logical/DAGSetupPluginManager.java b/engine/src/main/java/com/datatorrent/stram/plan/logical/DAGSetupPluginManager.java
index 2f1a904..c7c2767 100644
--- a/engine/src/main/java/com/datatorrent/stram/plan/logical/DAGSetupPluginManager.java
+++ b/engine/src/main/java/com/datatorrent/stram/plan/logical/DAGSetupPluginManager.java
@@ -23,7 +23,7 @@
 
 import org.slf4j.Logger;
 
-import org.apache.apex.api.DAGSetupPlugin;
+import org.apache.apex.api.plugin.DAGSetupPlugin;
 import org.apache.apex.engine.plugin.loaders.PropertyBasedPluginLocator;
 import org.apache.hadoop.conf.Configuration;
 
diff --git a/engine/src/main/java/com/datatorrent/stram/plan/logical/LogicalPlanConfiguration.java b/engine/src/main/java/com/datatorrent/stram/plan/logical/LogicalPlanConfiguration.java
index 5a9030e..a7fad2a 100644
--- a/engine/src/main/java/com/datatorrent/stram/plan/logical/LogicalPlanConfiguration.java
+++ b/engine/src/main/java/com/datatorrent/stram/plan/logical/LogicalPlanConfiguration.java
@@ -48,7 +48,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.apex.api.DAGSetupPlugin.DAGSetupPluginContext;
+import org.apache.apex.api.plugin.DAGSetupPlugin.DAGSetupPluginContext;
 import org.apache.commons.beanutils.BeanMap;
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.collections.CollectionUtils;
diff --git a/engine/src/main/java/org/apache/apex/engine/api/DAGExecutionPlugin.java b/engine/src/main/java/org/apache/apex/engine/api/plugin/DAGExecutionPlugin.java
similarity index 92%
rename from engine/src/main/java/org/apache/apex/engine/api/DAGExecutionPlugin.java
rename to engine/src/main/java/org/apache/apex/engine/api/plugin/DAGExecutionPlugin.java
index 5a3b5b9..060b240 100644
--- a/engine/src/main/java/org/apache/apex/engine/api/DAGExecutionPlugin.java
+++ b/engine/src/main/java/org/apache/apex/engine/api/plugin/DAGExecutionPlugin.java
@@ -16,12 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.apex.engine.api;
+package org.apache.apex.engine.api.plugin;
 
+import org.apache.apex.api.plugin.Plugin;
 import org.apache.hadoop.classification.InterfaceStability;
 
-import com.datatorrent.api.Component;
-
 /**
  * An Apex plugin is a user code which runs inside Stram. The interaction
  * between plugin and Stram is managed by DAGExecutionPluginContext. Plugin can register to handle event in interest
@@ -39,6 +38,6 @@
  * such as helper threads and open files.
  */
 @InterfaceStability.Evolving
-public interface DAGExecutionPlugin extends Component<DAGExecutionPluginContext>
+public interface DAGExecutionPlugin extends Plugin<DAGExecutionPluginContext>
 {
 }
diff --git a/engine/src/main/java/org/apache/apex/engine/api/DAGExecutionPluginContext.java b/engine/src/main/java/org/apache/apex/engine/api/plugin/DAGExecutionPluginContext.java
similarity index 93%
rename from engine/src/main/java/org/apache/apex/engine/api/DAGExecutionPluginContext.java
rename to engine/src/main/java/org/apache/apex/engine/api/plugin/DAGExecutionPluginContext.java
index d466b23..73da7e6 100644
--- a/engine/src/main/java/org/apache/apex/engine/api/DAGExecutionPluginContext.java
+++ b/engine/src/main/java/org/apache/apex/engine/api/plugin/DAGExecutionPluginContext.java
@@ -16,22 +16,23 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.apex.engine.api;
+package org.apache.apex.engine.api.plugin;
 
 import java.util.List;
 import java.util.Map;
 import java.util.Queue;
 
+import org.apache.apex.api.plugin.PluginContext;
 import org.apache.hadoop.classification.InterfaceStability;
 import org.apache.hadoop.conf.Configuration;
 
-import com.datatorrent.api.Context;
 import com.datatorrent.api.DAG;
 import com.datatorrent.api.StatsListener.BatchedOperatorStats;
 import com.datatorrent.common.util.Pair;
 import com.datatorrent.stram.StramAppContext;
 import com.datatorrent.stram.api.StramEvent;
 import com.datatorrent.stram.api.StreamingContainerUmbilicalProtocol;
+import com.datatorrent.stram.util.VersionInfo;
 import com.datatorrent.stram.webapp.AppInfo;
 import com.datatorrent.stram.webapp.LogicalOperatorInfo;
 
@@ -52,7 +53,7 @@
  * such as helper threads and open files.
  */
 @InterfaceStability.Evolving
-public interface DAGExecutionPluginContext extends Context
+public interface DAGExecutionPluginContext extends PluginContext
 {
   class RegistrationType<T>
   {
@@ -69,6 +70,8 @@
     void handle(T data);
   }
 
+  VersionInfo getEngineVersion();
+
   StramAppContext getApplicationContext();
 
   AppInfo.AppStats getApplicationStats();
diff --git a/engine/src/main/java/org/apache/apex/engine/api/PluginLocator.java b/engine/src/main/java/org/apache/apex/engine/api/plugin/PluginLocator.java
similarity index 96%
rename from engine/src/main/java/org/apache/apex/engine/api/PluginLocator.java
rename to engine/src/main/java/org/apache/apex/engine/api/plugin/PluginLocator.java
index e0f70be..b93d64c 100644
--- a/engine/src/main/java/org/apache/apex/engine/api/PluginLocator.java
+++ b/engine/src/main/java/org/apache/apex/engine/api/plugin/PluginLocator.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.apex.engine.api;
+package org.apache.apex.engine.api.plugin;
 
 import java.util.Collection;
 
diff --git a/engine/src/main/java/org/apache/apex/engine/plugin/AbstractDAGExecutionPluginContext.java b/engine/src/main/java/org/apache/apex/engine/plugin/AbstractDAGExecutionPluginContext.java
index a92b57b..19ef91a 100644
--- a/engine/src/main/java/org/apache/apex/engine/plugin/AbstractDAGExecutionPluginContext.java
+++ b/engine/src/main/java/org/apache/apex/engine/plugin/AbstractDAGExecutionPluginContext.java
@@ -23,7 +23,7 @@
 import java.util.Map;
 import java.util.Queue;
 
-import org.apache.apex.engine.api.DAGExecutionPluginContext;
+import org.apache.apex.engine.api.plugin.DAGExecutionPluginContext;
 import org.apache.hadoop.conf.Configuration;
 
 import com.datatorrent.api.Attribute;
@@ -33,6 +33,7 @@
 import com.datatorrent.stram.StramAppContext;
 import com.datatorrent.stram.StreamingContainerManager;
 import com.datatorrent.stram.plan.physical.PTOperator;
+import com.datatorrent.stram.util.VersionInfo;
 import com.datatorrent.stram.webapp.AppInfo;
 import com.datatorrent.stram.webapp.LogicalOperatorInfo;
 
@@ -80,6 +81,12 @@
   }
 
   @Override
+  public VersionInfo getEngineVersion()
+  {
+    return VersionInfo.APEX_VERSION;
+  }
+
+  @Override
   public Configuration getLaunchConfig()
   {
     return launchConf;
diff --git a/engine/src/main/java/org/apache/apex/engine/plugin/ApexPluginDispatcher.java b/engine/src/main/java/org/apache/apex/engine/plugin/ApexPluginDispatcher.java
index 62dd255..c6ef54d 100644
--- a/engine/src/main/java/org/apache/apex/engine/plugin/ApexPluginDispatcher.java
+++ b/engine/src/main/java/org/apache/apex/engine/plugin/ApexPluginDispatcher.java
@@ -18,7 +18,7 @@
  */
 package org.apache.apex.engine.plugin;
 
-import org.apache.apex.engine.api.DAGExecutionPluginContext.RegistrationType;
+import org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.RegistrationType;
 import org.apache.hadoop.service.Service;
 
 public interface ApexPluginDispatcher extends Service
diff --git a/engine/src/main/java/org/apache/apex/engine/plugin/ApexPluginManager.java b/engine/src/main/java/org/apache/apex/engine/plugin/ApexPluginManager.java
index 190cb6b..9f070a1 100644
--- a/engine/src/main/java/org/apache/apex/engine/plugin/ApexPluginManager.java
+++ b/engine/src/main/java/org/apache/apex/engine/plugin/ApexPluginManager.java
@@ -28,10 +28,10 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.apex.engine.api.DAGExecutionPlugin;
-import org.apache.apex.engine.api.DAGExecutionPluginContext.Handler;
-import org.apache.apex.engine.api.DAGExecutionPluginContext.RegistrationType;
-import org.apache.apex.engine.api.PluginLocator;
+import org.apache.apex.engine.api.plugin.DAGExecutionPlugin;
+import org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.Handler;
+import org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.RegistrationType;
+import org.apache.apex.engine.api.plugin.PluginLocator;
 import org.apache.commons.digester.plugins.PluginContext;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataInputStream;
diff --git a/engine/src/main/java/org/apache/apex/engine/plugin/DefaultApexPluginDispatcher.java b/engine/src/main/java/org/apache/apex/engine/plugin/DefaultApexPluginDispatcher.java
index 0c30943..0eee85e 100644
--- a/engine/src/main/java/org/apache/apex/engine/plugin/DefaultApexPluginDispatcher.java
+++ b/engine/src/main/java/org/apache/apex/engine/plugin/DefaultApexPluginDispatcher.java
@@ -28,9 +28,9 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.apex.engine.api.DAGExecutionPluginContext.Handler;
-import org.apache.apex.engine.api.DAGExecutionPluginContext.RegistrationType;
-import org.apache.apex.engine.api.PluginLocator;
+import org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.Handler;
+import org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.RegistrationType;
+import org.apache.apex.engine.api.plugin.PluginLocator;
 import org.apache.hadoop.conf.Configuration;
 
 import com.datatorrent.common.util.NameableThreadFactory;
diff --git a/engine/src/main/java/org/apache/apex/engine/plugin/NoOpApexPluginDispatcher.java b/engine/src/main/java/org/apache/apex/engine/plugin/NoOpApexPluginDispatcher.java
index 11eb5d1..f3f3382 100644
--- a/engine/src/main/java/org/apache/apex/engine/plugin/NoOpApexPluginDispatcher.java
+++ b/engine/src/main/java/org/apache/apex/engine/plugin/NoOpApexPluginDispatcher.java
@@ -18,7 +18,7 @@
  */
 package org.apache.apex.engine.plugin;
 
-import org.apache.apex.engine.api.DAGExecutionPluginContext.RegistrationType;
+import org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.RegistrationType;
 import org.apache.hadoop.service.AbstractService;
 
 public class NoOpApexPluginDispatcher extends AbstractService implements ApexPluginDispatcher
diff --git a/engine/src/main/java/org/apache/apex/engine/plugin/loaders/ChainedPluginLocator.java b/engine/src/main/java/org/apache/apex/engine/plugin/loaders/ChainedPluginLocator.java
index 42d4dc4..df3b50a 100644
--- a/engine/src/main/java/org/apache/apex/engine/plugin/loaders/ChainedPluginLocator.java
+++ b/engine/src/main/java/org/apache/apex/engine/plugin/loaders/ChainedPluginLocator.java
@@ -25,7 +25,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.apex.engine.api.PluginLocator;
+import org.apache.apex.engine.api.plugin.PluginLocator;
 import org.apache.hadoop.conf.Configuration;
 
 public class ChainedPluginLocator<T> implements PluginLocator<T>
diff --git a/engine/src/main/java/org/apache/apex/engine/plugin/loaders/PropertyBasedPluginLocator.java b/engine/src/main/java/org/apache/apex/engine/plugin/loaders/PropertyBasedPluginLocator.java
index b9fc2a5..b131109 100644
--- a/engine/src/main/java/org/apache/apex/engine/plugin/loaders/PropertyBasedPluginLocator.java
+++ b/engine/src/main/java/org/apache/apex/engine/plugin/loaders/PropertyBasedPluginLocator.java
@@ -25,7 +25,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.apex.engine.api.PluginLocator;
+import org.apache.apex.engine.api.plugin.PluginLocator;
 import org.apache.hadoop.conf.Configuration;
 
 import com.datatorrent.stram.StramUtils;
diff --git a/engine/src/main/java/org/apache/apex/engine/plugin/loaders/ServiceLoaderBasedPluginLocator.java b/engine/src/main/java/org/apache/apex/engine/plugin/loaders/ServiceLoaderBasedPluginLocator.java
index 3295329..be7dfc4 100644
--- a/engine/src/main/java/org/apache/apex/engine/plugin/loaders/ServiceLoaderBasedPluginLocator.java
+++ b/engine/src/main/java/org/apache/apex/engine/plugin/loaders/ServiceLoaderBasedPluginLocator.java
@@ -23,7 +23,7 @@
 import java.util.List;
 import java.util.ServiceLoader;
 
-import org.apache.apex.engine.api.PluginLocator;
+import org.apache.apex.engine.api.plugin.PluginLocator;
 import org.apache.hadoop.conf.Configuration;
 
 public class ServiceLoaderBasedPluginLocator<T> implements PluginLocator<T>
diff --git a/engine/src/main/java/org/apache/apex/engine/plugin/loaders/StaticPluginLocator.java b/engine/src/main/java/org/apache/apex/engine/plugin/loaders/StaticPluginLocator.java
index f6b0dfc..4767196 100644
--- a/engine/src/main/java/org/apache/apex/engine/plugin/loaders/StaticPluginLocator.java
+++ b/engine/src/main/java/org/apache/apex/engine/plugin/loaders/StaticPluginLocator.java
@@ -24,7 +24,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.apex.engine.api.PluginLocator;
+import org.apache.apex.engine.api.plugin.PluginLocator;
 import org.apache.hadoop.conf.Configuration;
 
 public class StaticPluginLocator<T> implements PluginLocator<T>
diff --git a/engine/src/test/java/com/datatorrent/stram/plan/logical/PropertyInjectorVisitor.java b/engine/src/test/java/com/datatorrent/stram/plan/logical/PropertyInjectorVisitor.java
index d2bd927..4c8b4e5 100644
--- a/engine/src/test/java/com/datatorrent/stram/plan/logical/PropertyInjectorVisitor.java
+++ b/engine/src/test/java/com/datatorrent/stram/plan/logical/PropertyInjectorVisitor.java
@@ -27,7 +27,7 @@
 
 import org.slf4j.Logger;
 
-import org.apache.apex.api.DAGSetupPlugin;
+import org.apache.apex.api.plugin.DAGSetupPlugin;
 
 import com.datatorrent.api.DAG;
 import com.datatorrent.api.Operator;
diff --git a/engine/src/test/java/org/apache/apex/engine/plugin/DebugPlugin.java b/engine/src/test/java/org/apache/apex/engine/plugin/DebugPlugin.java
index 6ad8073..4a64b10 100644
--- a/engine/src/test/java/org/apache/apex/engine/plugin/DebugPlugin.java
+++ b/engine/src/test/java/org/apache/apex/engine/plugin/DebugPlugin.java
@@ -22,16 +22,16 @@
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
-import org.apache.apex.engine.api.DAGExecutionPlugin;
-import org.apache.apex.engine.api.DAGExecutionPluginContext;
-import org.apache.apex.engine.api.DAGExecutionPluginContext.Handler;
+import org.apache.apex.engine.api.plugin.DAGExecutionPlugin;
+import org.apache.apex.engine.api.plugin.DAGExecutionPluginContext;
+import org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.Handler;
 
 import com.datatorrent.stram.api.StramEvent;
 import com.datatorrent.stram.api.StreamingContainerUmbilicalProtocol;
 
-import static org.apache.apex.engine.api.DAGExecutionPluginContext.COMMIT_EVENT;
-import static org.apache.apex.engine.api.DAGExecutionPluginContext.HEARTBEAT;
-import static org.apache.apex.engine.api.DAGExecutionPluginContext.STRAM_EVENT;
+import static org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.COMMIT_EVENT;
+import static org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.HEARTBEAT;
+import static org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.STRAM_EVENT;
 
 public class DebugPlugin implements DAGExecutionPlugin
 {
diff --git a/engine/src/test/java/org/apache/apex/engine/plugin/NoOpPlugin.java b/engine/src/test/java/org/apache/apex/engine/plugin/NoOpPlugin.java
index 4aad641..786e0d6 100644
--- a/engine/src/test/java/org/apache/apex/engine/plugin/NoOpPlugin.java
+++ b/engine/src/test/java/org/apache/apex/engine/plugin/NoOpPlugin.java
@@ -21,8 +21,8 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.apex.engine.api.DAGExecutionPlugin;
-import org.apache.apex.engine.api.DAGExecutionPluginContext;
+import org.apache.apex.engine.api.plugin.DAGExecutionPlugin;
+import org.apache.apex.engine.api.plugin.DAGExecutionPluginContext;
 
 public class NoOpPlugin implements DAGExecutionPlugin
 {
diff --git a/engine/src/test/java/org/apache/apex/engine/plugin/PluginTests.java b/engine/src/test/java/org/apache/apex/engine/plugin/PluginTests.java
index 4848983..fda607f 100644
--- a/engine/src/test/java/org/apache/apex/engine/plugin/PluginTests.java
+++ b/engine/src/test/java/org/apache/apex/engine/plugin/PluginTests.java
@@ -24,7 +24,7 @@
 import org.junit.Assert;
 import org.junit.Test;
 
-import org.apache.apex.engine.api.DAGExecutionPlugin;
+import org.apache.apex.engine.api.plugin.DAGExecutionPlugin;
 import org.apache.apex.engine.plugin.loaders.ChainedPluginLocator;
 import org.apache.apex.engine.plugin.loaders.ServiceLoaderBasedPluginLocator;
 import org.apache.apex.engine.plugin.loaders.StaticPluginLocator;
@@ -35,9 +35,9 @@
 import com.datatorrent.stram.api.StreamingContainerUmbilicalProtocol;
 import com.datatorrent.stram.support.StramTestSupport;
 
-import static org.apache.apex.engine.api.DAGExecutionPluginContext.COMMIT_EVENT;
-import static org.apache.apex.engine.api.DAGExecutionPluginContext.HEARTBEAT;
-import static org.apache.apex.engine.api.DAGExecutionPluginContext.STRAM_EVENT;
+import static org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.COMMIT_EVENT;
+import static org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.HEARTBEAT;
+import static org.apache.apex.engine.api.plugin.DAGExecutionPluginContext.STRAM_EVENT;
 
 public class PluginTests
 {
diff --git a/engine/src/test/resources/META-INF/services/org.apache.apex.engine.api.DAGExecutionPlugin b/engine/src/test/resources/META-INF/services/org.apache.apex.engine.api.plugin.DAGExecutionPlugin
similarity index 100%
rename from engine/src/test/resources/META-INF/services/org.apache.apex.engine.api.DAGExecutionPlugin
rename to engine/src/test/resources/META-INF/services/org.apache.apex.engine.api.plugin.DAGExecutionPlugin