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
