JCLOUDS-1492 Dimension Data Feature API Predicates are not usable (#1)


diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/DimensionDataCloudControlApi.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/DimensionDataCloudControlApi.java
index 9824357..3be5748 100644
--- a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/DimensionDataCloudControlApi.java
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/DimensionDataCloudControlApi.java
@@ -16,6 +16,8 @@
  */
 package org.jclouds.dimensiondata.cloudcontrol;
 
+import com.google.common.base.Predicate;
+import com.google.inject.Provides;
 import org.jclouds.dimensiondata.cloudcontrol.features.AccountApi;
 import org.jclouds.dimensiondata.cloudcontrol.features.CustomerImageApi;
 import org.jclouds.dimensiondata.cloudcontrol.features.InfrastructureApi;
@@ -25,8 +27,20 @@
 import org.jclouds.dimensiondata.cloudcontrol.features.TagApi;
 import org.jclouds.rest.annotations.Delegate;
 
+import javax.inject.Named;
 import java.io.Closeable;
 
+import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.CUSTOMER_IMAGE_DELETED_PREDICATE;
+import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.NETWORK_DOMAIN_DELETED_PREDICATE;
+import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.NETWORK_DOMAIN_NORMAL_PREDICATE;
+import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.SERVER_DELETED_PREDICATE;
+import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.SERVER_NORMAL_PREDICATE;
+import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.SERVER_STARTED_PREDICATE;
+import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.SERVER_STOPPED_PREDICATE;
+import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.VLAN_DELETED_PREDICATE;
+import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.VLAN_NORMAL_PREDICATE;
+import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.VM_TOOLS_RUNNING_PREDICATE;
+
 public interface DimensionDataCloudControlApi extends Closeable {
 
    @Delegate
@@ -49,4 +63,45 @@
 
    @Delegate
    CustomerImageApi getCustomerImageApi();
+
+   @Provides
+   @Named(VLAN_DELETED_PREDICATE)
+   Predicate<String> vlanDeletedPredicate();
+
+   @Provides
+   @Named(NETWORK_DOMAIN_DELETED_PREDICATE)
+   Predicate<String> networkDomainDeletedPredicate();
+
+   @Provides
+   @Named(NETWORK_DOMAIN_NORMAL_PREDICATE)
+   Predicate<String> networkDomainNormalPredicate();
+
+   @Provides
+   @Named(VLAN_NORMAL_PREDICATE)
+   Predicate<String> vlanNormalPredicate();
+
+   @Provides
+   @Named(SERVER_STOPPED_PREDICATE)
+   Predicate<String> serverStoppedPredicate();
+
+   @Provides
+   @Named(SERVER_DELETED_PREDICATE)
+   Predicate<String> serverDeletedPredicate();
+
+   @Provides
+   @Named(SERVER_STARTED_PREDICATE)
+   Predicate<String> serverStartedPredicate();
+
+   @Provides
+   @Named(SERVER_NORMAL_PREDICATE)
+   Predicate<String> serverNormalPredicate();
+
+   @Provides
+   @Named(VM_TOOLS_RUNNING_PREDICATE)
+   Predicate<String> vmToolsRunningPredicate();
+
+   @Provides
+   @Named(CUSTOMER_IMAGE_DELETED_PREDICATE)
+   Predicate<String> customerImageDeletedPredicate();
+
 }
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OsImage.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OsImage.java
index 7b179e5..a64c7a5 100644
--- a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OsImage.java
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OsImage.java
@@ -18,6 +18,7 @@
 
 import com.google.auto.value.AutoValue;
 import com.google.common.collect.ImmutableList;
+import org.jclouds.javax.annotation.Nullable;
 import org.jclouds.json.SerializedNames;
 
 import java.util.Date;
@@ -31,6 +32,7 @@
       type = TYPE;
    }
 
+   @Nullable
    public abstract String osImageKey();
 
    @SerializedNames({ "id", "name", "description", "cluster", "guest", "datacenterId", "cpu", "memoryGb", "nic", "disk",
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/NetworkApi.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/NetworkApi.java
index f43c41b..d67eaf3 100644
--- a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/NetworkApi.java
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/NetworkApi.java
@@ -18,8 +18,6 @@
 
 import com.google.common.base.Function;
 import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.inject.Provides;
 import com.google.inject.TypeLiteral;
 import org.jclouds.Fallbacks;
 import org.jclouds.Fallbacks.NullOnNotFoundOr404;
@@ -68,11 +66,6 @@
 import javax.ws.rs.core.MediaType;
 import java.util.List;
 
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.NETWORK_DOMAIN_DELETED_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.NETWORK_DOMAIN_NORMAL_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.VLAN_DELETED_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.VLAN_NORMAL_PREDICATE;
-
 /**
  * For examples of how to use this API please refer to https://jclouds.apache.org/guides/dimensiondata/
  */
@@ -308,22 +301,6 @@
    @Fallback(Fallbacks.VoidOnNotFoundOr404.class)
    void deletePortList(@PayloadParam("id") String portListId);
 
-   @Provides
-   @Named(VLAN_DELETED_PREDICATE)
-   Predicate<String> vlanDeletedPredicate();
-
-   @Provides
-   @Named(NETWORK_DOMAIN_DELETED_PREDICATE)
-   Predicate<String> networkDomainDeletedPredicate();
-
-   @Provides
-   @Named(NETWORK_DOMAIN_NORMAL_PREDICATE)
-   Predicate<String> networkDomainNormalPredicate();
-
-   @Provides
-   @Named(VLAN_NORMAL_PREDICATE)
-   Predicate<String> vlanNormalPredicate();
-
    @Singleton
    final class ParseFirewallRules extends ParseJson<FirewallRules> {
 
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApi.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApi.java
index deb7837..5013957 100644
--- a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApi.java
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApi.java
@@ -18,8 +18,6 @@
 
 import com.google.common.base.Function;
 import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.inject.Provides;
 import com.google.inject.TypeLiteral;
 import org.jclouds.Fallbacks;
 import org.jclouds.collect.IterableWithMarker;
@@ -61,11 +59,6 @@
 import javax.ws.rs.core.MediaType;
 import java.util.List;
 
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.SERVER_DELETED_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.SERVER_NORMAL_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.SERVER_STARTED_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.SERVER_STOPPED_PREDICATE;
-
 /**
  * For examples of how to use this API please refer to https://jclouds.apache.org/guides/dimensiondata/
  */
@@ -180,22 +173,6 @@
    @MapBinder(BindToJsonPayload.class)
    void shutdownServer(@PayloadParam("id") String id);
 
-   @Provides
-   @Named(SERVER_STOPPED_PREDICATE)
-   Predicate<String> serverStoppedPredicate();
-
-   @Provides
-   @Named(SERVER_DELETED_PREDICATE)
-   Predicate<String> serverDeletedPredicate();
-
-   @Provides
-   @Named(SERVER_STARTED_PREDICATE)
-   Predicate<String> serverStartedPredicate();
-
-   @Provides
-   @Named(SERVER_NORMAL_PREDICATE)
-   Predicate<String> serverNormalPredicate();
-
    @Singleton
    final class ParseServers extends ParseJson<Servers> {
 
diff --git a/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/features/NetworkApiLiveTest.java b/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/features/NetworkApiLiveTest.java
index 6cfdafe..c6f8e80 100644
--- a/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/features/NetworkApiLiveTest.java
+++ b/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/features/NetworkApiLiveTest.java
@@ -101,7 +101,7 @@
             NetworkApiLiveTest.class.getSimpleName() + new Date().getTime(), DEFAULT_PRIVATE_IPV4_BASE_ADDRESS,
             DEFAULT_PRIVATE_IPV4_PREFIX_SIZE);
       assertNotNull(vlanId);
-      assertTrue(vlanNormalPredicate.apply(vlanId), "vlan is not in a NORMAL state after timeout");
+      assertTrue(api.vlanNormalPredicate().apply(vlanId), "vlan is not in a NORMAL state after timeout");
    }
 
    @Test
@@ -110,7 +110,7 @@
       networkDomainId = api().deployNetworkDomain(datacenters.iterator().next(), networkDomainName,
             NetworkApiLiveTest.class.getSimpleName() + new Date().getTime() + "description", "ESSENTIALS");
       assertNotNull(networkDomainId);
-      assertTrue(networkDomainNormalPredicate.apply(networkDomainId),
+      assertTrue(api.networkDomainNormalPredicate().apply(networkDomainId),
             "network domain is not in a NORMAL state after timeout");
    }
 
@@ -131,11 +131,11 @@
       }
       if (vlanId != null) {
          api().deleteVlan(vlanId);
-         assertTrue(vlanDeletedPredicate.apply(vlanId), "vlan is not in a DELETED state after timeout");
+         assertTrue(api.vlanDeletedPredicate().apply(vlanId), "vlan is not in a DELETED state after timeout");
       }
       if (networkDomainId != null) {
          api().deleteNetworkDomain(networkDomainId);
-         assertTrue(networkDomainDeletedPredicate.apply(networkDomainId),
+         assertTrue(api.networkDomainDeletedPredicate().apply(networkDomainId),
                "network domain is not in a DELETED state after timeout");
       }
    }
diff --git a/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApiLiveTest.java b/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApiLiveTest.java
index 9fd3e91..996f31a 100644
--- a/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApiLiveTest.java
+++ b/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApiLiveTest.java
@@ -95,14 +95,14 @@
       serverId = api.getServerApi()
             .deployServer(deployedServerName, imageId, started, networkInfo, "P$$ssWwrrdGoDd!", disks, null);
       assertNotNull(serverId);
-      assertTrue(serverStartedPredicate.apply(serverId), "server did not start after timeout");
-      assertTrue(serverNormalPredicate.apply(serverId), "server was not NORMAL after timeout");
+      assertTrue(api.serverStartedPredicate().apply(serverId), "server did not start after timeout");
+      assertTrue(api.serverNormalPredicate().apply(serverId), "server was not NORMAL after timeout");
    }
 
    @Test(dependsOnMethods = "testDeployAndStartServer")
    public void testReconfigureServer() {
       api.getServerApi().reconfigureServer(serverId, 4, CpuSpeed.HIGHPERFORMANCE.name(), 1);
-      assertTrue(serverNormalPredicate.apply(serverId), "server was not NORMAL after timeout");
+      assertTrue(api.serverNormalPredicate().apply(serverId), "server was not NORMAL after timeout");
    }
 
    @Test(dependsOnMethods = "testDeployAndStartServer")
@@ -136,8 +136,8 @@
    @Test(dependsOnMethods = "testDeployAndStartServer")
    public void testRebootServer() {
       api.getServerApi().rebootServer(serverId);
-      assertTrue(serverNormalPredicate.apply(serverId), "server was not NORMAL after timeout");
-      assertTrue(vmtoolsRunningPredicate.apply(serverId), "server vm tools not running after timeout");
+      assertTrue(api.serverNormalPredicate().apply(serverId), "server was not NORMAL after timeout");
+      assertTrue(api.vmToolsRunningPredicate().apply(serverId), "server vm tools not running after timeout");
    }
 
    @Test(dependsOnMethods = "testDeployAndStartServer")
@@ -200,20 +200,20 @@
    @Test(dependsOnMethods = "testRebootServer")
    public void testPowerOffServer() {
       api.getServerApi().powerOffServer(serverId);
-      assertTrue(serverStoppedPredicate.apply(serverId), "server did not power off after timeout");
+      assertTrue(api.serverStoppedPredicate().apply(serverId), "server did not power off after timeout");
    }
 
    @Test(dependsOnMethods = "testPowerOffServer")
    public void testStartServer() {
       api.getServerApi().startServer(serverId);
-      assertTrue(serverStartedPredicate.apply(serverId), "server did not start after timeout");
-      assertTrue(vmtoolsRunningPredicate.apply(serverId), "server vm tools not running after timeout");
+      assertTrue(api.serverStartedPredicate().apply(serverId), "server did not start after timeout");
+      assertTrue(api.vmToolsRunningPredicate().apply(serverId), "server vm tools not running after timeout");
    }
 
    @Test(dependsOnMethods = "testStartServer")
    public void testShutdownServer() {
       api.getServerApi().shutdownServer(serverId);
-      assertTrue(serverStoppedPredicate.apply(serverId), "server did not shutdown after timeout");
+      assertTrue(api.serverStoppedPredicate().apply(serverId), "server did not shutdown after timeout");
    }
 
    @Test(dependsOnMethods = "testShutdownServer")
@@ -223,7 +223,7 @@
       cloneImageId = api.getServerApi()
             .cloneServer(serverId, "ServerApiLiveTest-" + System.currentTimeMillis(), options);
       assertNotNull(cloneImageId);
-      assertTrue(serverNormalPredicate.apply(serverId), "server was not NORMAL after timeout");
+      assertTrue(api.serverNormalPredicate().apply(serverId), "server was not NORMAL after timeout");
    }
 
    @Test(dependsOnMethods = "testCloneServerToMakeCustomerImage")
@@ -248,7 +248,8 @@
    public void testDeleteCustomerImage() {
       boolean deleted = api.getCustomerImageApi().deleteCustomerImage(cloneImageId);
       assertTrue(deleted);
-      assertTrue(customerImageDeletedPredicate.apply(cloneImageId), "customer image was not DELETED after timeout");
+      assertTrue(api.customerImageDeletedPredicate().apply(cloneImageId),
+            "customer image was not DELETED after timeout");
    }
 
    @AfterClass(alwaysRun = true)
@@ -258,15 +259,15 @@
       }
       if (serverId != null) {
          api.getServerApi().deleteServer(serverId);
-         assertTrue(serverDeletedPredicate.apply(serverId), "server was not DELETED after timeout");
+         assertTrue(api.serverDeletedPredicate().apply(serverId), "server was not DELETED after timeout");
       }
       if (vlanId != null) {
          api.getNetworkApi().deleteVlan(vlanId);
-         assertTrue(vlanDeletedPredicate.apply(vlanId), "vlan is not in a DELETED state after timeout");
+         assertTrue(api.vlanDeletedPredicate().apply(vlanId), "vlan is not in a DELETED state after timeout");
       }
       if (networkDomainId != null) {
          api.getNetworkApi().deleteNetworkDomain(networkDomainId);
-         assertTrue(networkDomainDeletedPredicate.apply(networkDomainId),
+         assertTrue(api.networkDomainDeletedPredicate().apply(networkDomainId),
                "network domain is not in a DELETED state after timeout");
       }
       if (tagKeyId != null && !tagKeyId.isEmpty()) {
@@ -287,7 +288,7 @@
                   ServerApiLiveTest.class.getSimpleName() + new Date().getTime(), DEFAULT_PRIVATE_IPV4_BASE_ADDRESS,
                   DEFAULT_PRIVATE_IPV4_PREFIX_SIZE);
       assertNotNull(vlanId);
-      assertTrue(vlanNormalPredicate.apply(vlanId), "vlan is not in a NORMAL state after timeout");
+      assertTrue(api.vlanNormalPredicate().apply(vlanId), "vlan is not in a NORMAL state after timeout");
    }
 
    private String deployNetworkDomain() {
@@ -296,7 +297,7 @@
       networkDomainId = api.getNetworkApi().deployNetworkDomain(datacenterId, networkDomainName,
             ServerApiLiveTest.class.getSimpleName() + new Date().getTime() + "description", "ESSENTIALS");
       assertNotNull(networkDomainId);
-      assertTrue(networkDomainNormalPredicate.apply(networkDomainId),
+      assertTrue(api.networkDomainNormalPredicate().apply(networkDomainId),
             "network domain is not in a NORMAL state after timeout");
       return datacenterId;
    }
diff --git a/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/internal/BaseDimensionDataCloudControlApiLiveTest.java b/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/internal/BaseDimensionDataCloudControlApiLiveTest.java
index e040d41..d512eb6 100644
--- a/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/internal/BaseDimensionDataCloudControlApiLiveTest.java
+++ b/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/internal/BaseDimensionDataCloudControlApiLiveTest.java
@@ -16,14 +16,10 @@
  */
 package org.jclouds.dimensiondata.cloudcontrol.internal;
 
-import com.google.common.base.Predicate;
 import com.google.common.base.Supplier;
 import com.google.common.collect.ImmutableSet;
 import com.google.inject.Injector;
-import com.google.inject.Key;
 import com.google.inject.Module;
-import com.google.inject.TypeLiteral;
-import com.google.inject.name.Names;
 import org.jclouds.ContextBuilder;
 import org.jclouds.apis.ApiMetadata;
 import org.jclouds.apis.BaseApiLiveTest;
@@ -44,16 +40,6 @@
 import java.util.Set;
 
 import static com.google.common.util.concurrent.MoreExecutors.newDirectExecutorService;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.CUSTOMER_IMAGE_DELETED_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.NETWORK_DOMAIN_DELETED_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.NETWORK_DOMAIN_NORMAL_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.SERVER_DELETED_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.SERVER_NORMAL_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.SERVER_STARTED_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.SERVER_STOPPED_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.VLAN_DELETED_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.VLAN_NORMAL_PREDICATE;
-import static org.jclouds.dimensiondata.cloudcontrol.config.DimensionDataCloudControlComputeServiceContextModule.VM_TOOLS_RUNNING_PREDICATE;
 
 @Test(groups = "live")
 public class BaseDimensionDataCloudControlApiLiveTest extends BaseApiLiveTest<DimensionDataCloudControlApi> {
@@ -67,17 +53,6 @@
    protected static final Integer DEFAULT_PRIVATE_IPV4_PREFIX_SIZE = 24;
    protected static final String DEFAULT_PROTOCOL = "TCP";
 
-   protected Predicate<String> vlanDeletedPredicate;
-   protected Predicate<String> vlanNormalPredicate;
-   protected Predicate<String> networkDomainDeletedPredicate;
-   protected Predicate<String> networkDomainNormalPredicate;
-   protected Predicate<String> serverStoppedPredicate;
-   protected Predicate<String> serverStartedPredicate;
-   protected Predicate<String> serverDeletedPredicate;
-   protected Predicate<String> serverNormalPredicate;
-   protected Predicate<String> vmtoolsRunningPredicate;
-   protected Predicate<String> customerImageDeletedPredicate;
-
    public BaseDimensionDataCloudControlApiLiveTest() {
       provider = "dimensiondata-cloudcontrol";
    }
@@ -115,27 +90,6 @@
    @Override
    protected DimensionDataCloudControlApi create(Properties props, Iterable<Module> modules) {
       Injector injector = newBuilder().modules(modules).overrides(props).buildInjector();
-      vlanDeletedPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>() {
-      }, Names.named(VLAN_DELETED_PREDICATE)));
-      vlanNormalPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>() {
-      }, Names.named(VLAN_NORMAL_PREDICATE)));
-      networkDomainDeletedPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>() {
-      }, Names.named(NETWORK_DOMAIN_DELETED_PREDICATE)));
-      networkDomainNormalPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>() {
-      }, Names.named(NETWORK_DOMAIN_NORMAL_PREDICATE)));
-      serverStartedPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>() {
-      }, Names.named(SERVER_STARTED_PREDICATE)));
-      serverStoppedPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>() {
-      }, Names.named(SERVER_STOPPED_PREDICATE)));
-      serverDeletedPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>() {
-      }, Names.named(SERVER_DELETED_PREDICATE)));
-      serverNormalPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>() {
-      }, Names.named(SERVER_NORMAL_PREDICATE)));
-      vmtoolsRunningPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>() {
-      }, Names.named(VM_TOOLS_RUNNING_PREDICATE)));
-      customerImageDeletedPredicate = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>() {
-      }, Names.named(CUSTOMER_IMAGE_DELETED_PREDICATE)));
-
       return injector.getInstance(DimensionDataCloudControlApi.class);
    }