#683 - Stopped creating Oracle & Worker using FluoFactory so Twill can find dependencies
diff --git a/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/OracleRunnable.java b/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/OracleRunnable.java
index e4f2cea..5080037 100644
--- a/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/OracleRunnable.java
+++ b/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/OracleRunnable.java
@@ -24,6 +24,7 @@
 import org.apache.fluo.api.service.FluoOracle;
 import org.apache.fluo.cluster.util.LogbackUtil;
 import org.apache.fluo.core.metrics.MetricNames;
+import org.apache.fluo.core.oracle.FluoOracleImpl;
 import org.apache.fluo.core.util.UtilWaitThread;
 import org.apache.twill.api.AbstractTwillRunnable;
 import org.apache.twill.api.TwillContext;
@@ -76,7 +77,9 @@
         System.setProperty(MetricNames.METRICS_ID_PROP, "oracle-" + context.getInstanceId());
       }
 
-      FluoOracle oracle = FluoFactory.newOracle(config);
+      // FluoFactory cannot be used to create FluoOracle as Twill will not load its dependencies
+      // if it is loaded dynamically
+      FluoOracle oracle = new FluoOracleImpl(config);
       oracle.start();
       while (!shutdown.get()) {
         UtilWaitThread.sleep(10000);
diff --git a/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/WorkerRunnable.java b/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/WorkerRunnable.java
index f7fdbb9..9b7e6b7 100644
--- a/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/WorkerRunnable.java
+++ b/modules/cluster/src/main/java/org/apache/fluo/cluster/runnable/WorkerRunnable.java
@@ -25,6 +25,7 @@
 import org.apache.fluo.cluster.util.LogbackUtil;
 import org.apache.fluo.core.metrics.MetricNames;
 import org.apache.fluo.core.util.UtilWaitThread;
+import org.apache.fluo.core.worker.FluoWorkerImpl;
 import org.apache.twill.api.AbstractTwillRunnable;
 import org.apache.twill.api.TwillContext;
 import org.slf4j.Logger;
@@ -90,7 +91,9 @@
         System.setProperty(MetricNames.METRICS_ID_PROP, "worker-" + context.getInstanceId());
       }
 
-      FluoWorker worker = FluoFactory.newWorker(config);
+      // FluoFactory cannot be used to create FluoWorker as Twill will not load its dependencies
+      // if it is loaded dynamically
+      FluoWorker worker = new FluoWorkerImpl(config);
       worker.start();
       while (!shutdown.get()) {
         UtilWaitThread.sleep(1000);