Moti Asayag has uploaded a new change for review.

Change subject: engine: Inject dependencies to FutureVdsCommand
......................................................................

engine: Inject dependencies to FutureVdsCommand

Change-Id: I975a2752c21d60dacb452714d0910dc658897a4a
Signed-off-by: Moti Asayag <[email protected]>
---
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java
2 files changed, 14 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/26/42026/1

diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
index 92e21d5..d0c6d10 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
@@ -449,11 +449,7 @@
                     ReflectionUtils.findConstructor(type, 
parameters.getClass());
 
             if (constructor != null) {
-                VDSCommandBase<P> cmd = constructor.newInstance(new Object[] { 
parameters });
-                InjectionTarget injectionTarget =
-                        
beanManager.createInjectionTarget(beanManager.createAnnotatedType(cmd.getClass()));
-                injectionTarget.inject(cmd, 
beanManager.createCreationalContext(null));
-                return cmd;
+                return instantiateInjectedCommand(parameters, constructor);
             }
         } catch (Exception e) {
             if (e.getCause() != null) {
@@ -467,17 +463,24 @@
         return null;
     }
 
+    private <P extends VDSParametersBase, T extends VDSCommandBase<P>> T 
instantiateInjectedCommand(P parameters,
+            Constructor<T> constructor) throws Exception {
+        T cmd = constructor.newInstance(new Object[] { parameters });
+        InjectionTarget injectionTarget =
+                
beanManager.createInjectionTarget(beanManager.createAnnotatedType(cmd.getClass()));
+        injectionTarget.inject(cmd, beanManager.createCreationalContext(null));
+        return cmd;
+    }
+
     private <P extends VdsIdVDSCommandParametersBase> FutureVDSCommand 
createFutureCommand(FutureVDSCommandType commandType,
             P parameters) {
         try {
             Class<FutureVDSCommand> type =
                     (Class<FutureVDSCommand>) 
Class.forName(commandType.getFullyQualifiedClassName());
-            Constructor<FutureVDSCommand> constructor =
-                    ReflectionUtils.findConstructor(type,
-                            parameters.getClass());
+            Constructor<FutureVDSCommand> constructor = 
ReflectionUtils.findConstructor(type, parameters.getClass());
 
             if (constructor != null) {
-                return constructor.newInstance(new Object[] { parameters });
+                return instantiateInjectedCommand(parameters, constructor);
             }
         } catch (Exception e) {
             if (e.getCause() != null) {
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java
index 418aff7..6a62f02 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerCommand.java
@@ -61,6 +61,8 @@
             throw new 
VdcBLLException(VdcBllErrors.RESOURCE_MANAGER_VDS_NOT_FOUND,
                     String.format("Vds with id: %1$s was not found", vdsId));
         }
+
+        setVdsAndVdsStatic(vdsmanager.getCopyVds());
         return vdsmanager.getVdsProxy();
     }
 


-- 
To view, visit https://gerrit.ovirt.org/42026
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I975a2752c21d60dacb452714d0910dc658897a4a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Moti Asayag <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to