Roy Golan has uploaded a new change for review.

Change subject: core: Introduce postConstruct for commands
......................................................................

core: Introduce postConstruct for commands

Replace the need to call DbFacade or other interaction with the command
dependencies during the constructor which is both not recommended for
perfomance, and very bad for testing frameworks.

It is ensured (by CommandFactory) that all the command injected
dependencies are already in place.

so instead of:

public DoThisCommand(P p) {
  DbFacade.getInstance().getVmDao...
}

we would:

@Override
private postConstruct() {
  dbFacade.getVmDao...
}

Change-Id: Ic0686c430b5151eb227eefb49096a27161d87723
Signed-off-by: Roy Golan <rgo...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java
1 file changed, 11 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/99/37599/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java
index 02fcb90..9f53280 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java
@@ -12,6 +12,7 @@
 import java.util.Map.Entry;
 import java.util.Set;
 
+import javax.annotation.PostConstruct;
 import javax.ejb.TransactionRolledbackLocalException;
 import javax.enterprise.inject.Instance;
 import javax.inject.Inject;
@@ -219,6 +220,16 @@
         this.commandId = commandId;
     }
 
+    /**
+     * Implement this method whenever you need extra initialization of the 
command after the
+     * constructor. All DB calls or other interaction with the command 
dependencies for initialization
+     * should be done here. It is ensured that all injected dependencies 
should be injected at the time calling.
+     *
+     * @see PostConstruct
+     */
+    @PostConstruct
+    abstract void postConstruct();
+
     protected List<SPMAsyncTaskHandler> initTaskHandlers() {
         return null;
     }


-- 
To view, visit http://gerrit.ovirt.org/37599
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic0686c430b5151eb227eefb49096a27161d87723
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Roy Golan <rgo...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to