veghlaci05 commented on code in PR #3746:
URL: https://github.com/apache/hive/pull/3746#discussion_r1033586801


##########
ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/Worker.java:
##########
@@ -80,6 +80,15 @@ public class Worker extends RemoteCompactorThread implements 
MetaStoreThread {
   static final private long SLEEP_TIME = 10000;
 
   private String workerName;
+  private final CompactorFactory compactorFactory;
+
+  public Worker() {
+    compactorFactory = CompactorFactory.getInstance();
+  }
+
+  public Worker(CompactorFactory compactorFactory) {
+    this.compactorFactory = compactorFactory;

Review Comment:
   It was done that way before, @kasakrisz requested to add a constructor 
instead. 
   
   Personally I rather agree with him, on the long run I would like to 
eliminate usage of static methods and singletons  in compaction related classes 
whenever possible, and replace them with instance fields. Providing 
dependencies via constructor would make testing easier, and would allow devs to 
discover and control class dependencies much easier. It would also allow to 
introduce dependency injection easier in the future. I doubt it will happen but 
hope dies last :)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to