Mike Kolesnik has uploaded a new change for review.

Change subject: engine: Generify & IoC provider proxy factory
......................................................................

engine: Generify & IoC provider proxy factory

To support multiple provider & provider proxy types, this factory should
be generic and return the correct type.

Also turned the factory into a singleton which returns an instance that
can be used for DI, so that interacting classes don't have to rely on a
static relationship with the factory class.

Change-Id: I79d80c28921e417e9cfbb35bb621bbdb751c667a
Signed-off-by: Mike Kolesnik <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/TestProviderConnectivityCommand.java
2 files changed, 18 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/67/14967/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
index 080a76d..ccb1ae5 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/ProviderProxyFactory.java
@@ -7,6 +7,12 @@
  */
 public class ProviderProxyFactory {
 
+    private static final ProviderProxyFactory INSTANCE = new 
ProviderProxyFactory();
+
+    private ProviderProxyFactory() {
+        // Singleton private c'tor
+    }
+
     /**
      * Create the proxy used to communicate with the given provider.
      *
@@ -14,7 +20,16 @@
      *            The provider to create the proxy for.
      * @return The proxy for communicating with the provider
      */
-    public static ProviderProxy create(Provider provider) {
-        return null;
+    public <P extends ProviderProxy> P create(Provider provider) {
+        return (P) null;
+    }
+
+    /**
+     * Return the {@link ProviderProxyFactory} for using as a dependency.
+     *
+     * @return The {@link ProviderProxyFactory}
+     */
+    public static ProviderProxyFactory getInstance() {
+        return INSTANCE;
     }
 }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/TestProviderConnectivityCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/TestProviderConnectivityCommand.java
index 07c7d68..709a855 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/TestProviderConnectivityCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/provider/TestProviderConnectivityCommand.java
@@ -29,7 +29,7 @@
 
     @Override
     protected void executeCommand() {
-        ProviderProxy proxy = 
ProviderProxyFactory.create(getParameters().getProvider());
+        ProviderProxy proxy = 
ProviderProxyFactory.getInstance().create(getParameters().getProvider());
 
         proxy.testConnection();
         setSucceeded(true);


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

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

Reply via email to