You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ad...@apache.org on 2013/09/30 18:15:34 UTC

[14/17] JCLOUDS-304. Remove broken terremark providers

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudLifeCycleStrategy.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudLifeCycleStrategy.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudLifeCycleStrategy.java
deleted file mode 100644
index 27bd096..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudLifeCycleStrategy.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.compute.strategy;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.net.URI;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.compute.strategy.GetNodeMetadataStrategy;
-import org.jclouds.compute.strategy.RebootNodeStrategy;
-import org.jclouds.compute.strategy.ResumeNodeStrategy;
-import org.jclouds.compute.strategy.SuspendNodeStrategy;
-import org.jclouds.logging.Logger;
-import org.jclouds.trmk.vcloud_0_8.TerremarkVCloudApi;
-import org.jclouds.trmk.vcloud_0_8.domain.Task;
-
-import com.google.common.base.Predicate;
-
-/**
- * @author Adrian Cole
- */
-@Singleton
-public class TerremarkVCloudLifeCycleStrategy implements RebootNodeStrategy, ResumeNodeStrategy, SuspendNodeStrategy {
-   @Resource
-   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
-   protected Logger logger = Logger.NULL;
-
-   private final TerremarkVCloudApi client;
-   protected final Predicate<URI> taskTester;
-   protected final GetNodeMetadataStrategy getNode;
-
-   @Inject
-   protected TerremarkVCloudLifeCycleStrategy(TerremarkVCloudApi client, Predicate<URI> taskTester,
-            GetNodeMetadataStrategy getNode) {
-      this.client = client;
-      this.taskTester = taskTester;
-      this.getNode = getNode;
-   }
-
-   @Override
-   public NodeMetadata rebootNode(String in) {
-      Task task = client.resetVApp(URI.create(checkNotNull(in, "node.id")));
-      return returnWhenTaskCompletes(in, task);
-   }
-
-   private NodeMetadata returnWhenTaskCompletes(String in, Task task) {
-      taskTester.apply(task.getHref());
-      return getNode.getNode(in);
-   }
-
-   @Override
-   public NodeMetadata resumeNode(String in) {
-      Task task = client.powerOnVApp(URI.create(checkNotNull(in, "node.id")));
-      return returnWhenTaskCompletes(in, task);
-   }
-
-   @Override
-   public NodeMetadata suspendNode(String in) {
-      Task task = client.powerOffVApp(URI.create(checkNotNull(in, "node.id")));
-      return returnWhenTaskCompletes(in, task);
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudListNodesStrategy.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudListNodesStrategy.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudListNodesStrategy.java
deleted file mode 100644
index 3a8b92a..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudListNodesStrategy.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.compute.strategy;
-import static com.google.common.collect.Iterables.toArray;
-import static org.jclouds.compute.config.ComputeServiceProperties.BLACKLIST_NODES;
-import static org.jclouds.compute.predicates.NodePredicates.all;
-import static org.jclouds.compute.predicates.NodePredicates.withIds;
-import static org.jclouds.compute.reference.ComputeServiceConstants.COMPUTE_LOGGER;
-
-import java.util.Map;
-import java.util.Set;
-
-import javax.annotation.Resource;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.compute.domain.ComputeMetadata;
-import org.jclouds.compute.domain.ComputeMetadataBuilder;
-import org.jclouds.compute.domain.ComputeType;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.strategy.ListNodesStrategy;
-import org.jclouds.logging.Logger;
-import org.jclouds.trmk.vcloud_0_8.TerremarkVCloudApi;
-import org.jclouds.trmk.vcloud_0_8.TerremarkVCloudMediaType;
-import org.jclouds.trmk.vcloud_0_8.compute.functions.FindLocationForResource;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Org;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Predicate;
-import com.google.common.base.Splitter;
-import com.google.common.base.Supplier;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Sets;
-import com.google.inject.Inject;
-
-/**
- * @author Adrian Cole
- */
-// TODO REFACTOR!!! needs to be parallel
-@Singleton
-public class TerremarkVCloudListNodesStrategy implements ListNodesStrategy {
-   @Resource
-   @Named(COMPUTE_LOGGER)
-   public Logger logger = Logger.NULL;
-   protected final TerremarkVCloudGetNodeMetadataStrategy getNodeMetadata;
-   protected final TerremarkVCloudApi client;
-   protected final FindLocationForResource findLocationForResourceInVDC;
-   Set<String> blackListVAppNames = ImmutableSet.<String> of();
-
-   @Inject(optional = true)
-   void setBlackList(@Named(BLACKLIST_NODES) String blackListNodes) {
-      if (blackListNodes != null && !"".equals(blackListNodes))
-         this.blackListVAppNames = ImmutableSet.copyOf(Splitter.on(',').split(blackListNodes));
-   }
-
-   private final Supplier<Map<String, ReferenceType>> orgNameToEndpoint;
-
-   @Inject
-   protected TerremarkVCloudListNodesStrategy(TerremarkVCloudApi client,
-         @Org Supplier<Map<String, ReferenceType>> orgNameToEndpoint,
-         TerremarkVCloudGetNodeMetadataStrategy getNodeMetadata, FindLocationForResource findLocationForResourceInVDC) {
-      this.client = client;
-      this.orgNameToEndpoint = orgNameToEndpoint;
-      this.getNodeMetadata = getNodeMetadata;
-      this.findLocationForResourceInVDC = findLocationForResourceInVDC;
-   }
-
-   @Override
-   public Iterable<ComputeMetadata> listNodes() {
-      Set<ComputeMetadata> nodes = Sets.newHashSet();
-      for (String org : orgNameToEndpoint.get().keySet()) {
-         for (ReferenceType vdc : client.findOrgNamed(org).getVDCs().values()) {
-            for (ReferenceType resource : client.getVDC(vdc.getHref()).getResourceEntities().values()) {
-               if (validVApp(resource)) {
-                  nodes.add(convertVAppToComputeMetadata(vdc, resource));
-               }
-            }
-         }
-      }
-      return nodes;
-   }
-
-   private boolean validVApp(ReferenceType resource) {
-      return resource.getType().equals(TerremarkVCloudMediaType.VAPP_XML)
-            && !blackListVAppNames.contains(resource.getName());
-   }
-
-   private ComputeMetadata convertVAppToComputeMetadata(ReferenceType vdc, ReferenceType resource) {
-      ComputeMetadataBuilder builder = new ComputeMetadataBuilder(ComputeType.NODE);
-      builder.providerId(resource.getHref().toASCIIString());
-      builder.name(resource.getName());
-      builder.id(resource.getHref().toASCIIString());
-      builder.location(findLocationForResourceInVDC.apply(vdc));
-      return builder.build();
-   }
-
-   @Override
-   public Iterable<? extends NodeMetadata> listNodesByIds(Iterable<String> ids) {
-      return FluentIterable.from(listDetailsOnNodesMatching(all())).filter(withIds(toArray(ids, String.class))).toSet();
-   }
-
-   @Override
-   public Iterable<NodeMetadata> listDetailsOnNodesMatching(Predicate<ComputeMetadata> filter) {
-      Set<NodeMetadata> nodes = Sets.newHashSet();
-      for (String org : orgNameToEndpoint.get().keySet()) {
-         for (ReferenceType vdc : client.findOrgNamed(org).getVDCs().values()) {
-            for (ReferenceType resource : client.getVDC(vdc.getHref()).getResourceEntities().values()) {
-               if (validVApp(resource) && filter.apply(convertVAppToComputeMetadata(vdc, resource))) {
-                  addVAppToSetRetryingIfNotYetPresent(nodes, vdc, resource);
-               }
-            }
-         }
-      }
-      return nodes;
-   }
-
-   @VisibleForTesting
-   void addVAppToSetRetryingIfNotYetPresent(Set<NodeMetadata> nodes, ReferenceType vdc, ReferenceType resource) {
-      NodeMetadata node = null;
-      int i = 0;
-      while (node == null && i++ < 3) {
-         try {
-            node = getNodeMetadata.getNode(resource.getHref().toASCIIString());
-            nodes.add(node);
-         } catch (NullPointerException e) {
-            logger.warn("vApp %s not yet present in vdc %s", resource.getName(), vdc.getName());
-         }
-      }
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/StaticHardwareSupplier.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/StaticHardwareSupplier.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/StaticHardwareSupplier.java
deleted file mode 100644
index 185250a..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/StaticHardwareSupplier.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.compute.suppliers;
-
-import java.util.Set;
-
-import javax.inject.Singleton;
-
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.HardwareBuilder;
-import org.jclouds.compute.domain.Processor;
-import org.jclouds.compute.domain.Volume;
-import org.jclouds.compute.domain.internal.VolumeImpl;
-
-import com.google.common.base.Supplier;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Sets;
-
-/**
- * @author Adrian Cole
- */
-@Singleton
-public class StaticHardwareSupplier implements Supplier<Set<? extends Hardware>> {
-
-   @Override
-   public Set<? extends Hardware> get() {
-      Set<Hardware> hardware = Sets.newHashSet();
-      for (int cpus : new int[] { 1, 2, 4, 8 })
-         for (int ram : new int[] { 512, 1024, 2048, 4096, 8192, 16384 }) {
-            String id = String.format("cpu=%d,ram=%s,disk=%d", cpus, ram, 10);
-            hardware.add(new HardwareBuilder().ids(id).ram(ram).processors(ImmutableList.of(new Processor(cpus, 1.0)))
-                     .volumes(ImmutableList.<Volume> of(new VolumeImpl(10f, true, true))).hypervisor("VMware").build());
-         }
-      return hardware;
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VAppTemplatesInOrgs.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VAppTemplatesInOrgs.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VAppTemplatesInOrgs.java
deleted file mode 100644
index 5bb79d8..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VAppTemplatesInOrgs.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.compute.suppliers;
-
-import static com.google.common.collect.Iterables.concat;
-import static com.google.common.collect.Iterables.transform;
-import static com.google.common.collect.Sets.newLinkedHashSet;
-
-import java.util.Set;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.collect.Memoized;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.domain.Location;
-import org.jclouds.logging.Logger;
-import org.jclouds.trmk.vcloud_0_8.compute.functions.ImagesInVCloudExpressOrg;
-import org.jclouds.trmk.vcloud_0_8.domain.Org;
-
-import com.google.common.base.Function;
-import com.google.common.base.Supplier;
-
-/**
- * @author Adrian Cole
- */
-@Singleton
-public class VAppTemplatesInOrgs implements Supplier<Set<? extends Image>> {
-
-   @Resource
-   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
-   public Logger logger = Logger.NULL;
-
-   private final Supplier<Set<? extends Location>> locations;
-   private final Function<Iterable<? extends Location>, Iterable<? extends Org>> organizationsForLocations;
-   private final ImagesInVCloudExpressOrg imagesInOrg;
-
-   @Inject
-   VAppTemplatesInOrgs(@Memoized Supplier<Set<? extends Location>> locations,
-            Function<Iterable<? extends Location>, Iterable<? extends Org>> organizationsForLocations,
-            ImagesInVCloudExpressOrg imagesInOrg) {
-      this.locations = locations;
-      this.organizationsForLocations = organizationsForLocations;
-      this.imagesInOrg = imagesInOrg;
-   }
-
-   /**
-    * Terremark does not provide vApp templates in the vDC resourceEntity list. Rather, you must
-    * query the catalog.
-    */
-   @Override
-   public Set<? extends Image> get() {
-      logger.debug(">> providing vAppTemplates");
-      return newLinkedHashSet(concat(transform(organizationsForLocations.apply(locations.get()), imagesInOrg)));
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudHardwareSupplier.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudHardwareSupplier.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudHardwareSupplier.java
deleted file mode 100644
index 5fcc41b..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudHardwareSupplier.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.compute.suppliers;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.collect.Iterables.concat;
-import static com.google.common.collect.Sets.newLinkedHashSet;
-import static org.jclouds.concurrent.FutureIterables.transformParallel;
-
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.Callable;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.Constants;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.logging.Logger;
-import org.jclouds.trmk.vcloud_0_8.domain.Org;
-
-import com.google.common.base.Function;
-import com.google.common.base.Supplier;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.ListeningExecutorService;
-
-/**
- * @author Adrian Cole
- */
-@Singleton
-public class VCloudHardwareSupplier implements Supplier<Set<? extends Hardware>> {
-
-   @Resource
-   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
-   public Logger logger = Logger.NULL;
-
-   private final Supplier<Map<String, ? extends Org>> orgMap;
-   private final Function<Org, Iterable<? extends Hardware>> sizesInOrg;
-   private final ListeningExecutorService userExecutor;
-
-   @Inject
-   VCloudHardwareSupplier(Supplier<Map<String, ? extends Org>> orgMap,
-            Function<Org, Iterable<? extends Hardware>> sizesInOrg,
-            @Named(Constants.PROPERTY_USER_THREADS) ListeningExecutorService userExecutor) {
-      this.orgMap = checkNotNull(orgMap, "orgMap");
-      this.sizesInOrg = checkNotNull(sizesInOrg, "sizesInOrg");
-      this.userExecutor = checkNotNull(userExecutor, "userExecutor");
-   }
-
-   @Override
-   public Set<? extends Hardware> get() {
-      Iterable<? extends Org> orgs = checkNotNull(orgMap.get().values(), "orgs");
-      Iterable<? extends Iterable<? extends Hardware>> sizes = transformParallel(orgs,
-               new Function<Org, ListenableFuture<? extends Iterable<? extends Hardware>>>() {
-
-                  @Override
-                  public ListenableFuture<Iterable<? extends Hardware>> apply(final Org from) {
-                     checkNotNull(from, "org");
-                     return userExecutor.submit(new Callable<Iterable<? extends Hardware>>() {
-
-                        @Override
-                        public Iterable<? extends Hardware> call() throws Exception {
-                           return sizesInOrg.apply(from);
-                        }
-
-                        @Override
-                        public String toString() {
-                           return "sizesInOrg(" + from.getHref() + ")";
-                        }
-                     });
-                  }
-
-               }, userExecutor, null, logger, "sizes in " + orgs);
-      return newLinkedHashSet(concat(sizes));
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudImageSupplier.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudImageSupplier.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudImageSupplier.java
deleted file mode 100644
index 2d117cd..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudImageSupplier.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.compute.suppliers;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.collect.Iterables.concat;
-import static com.google.common.collect.Sets.newLinkedHashSet;
-import static org.jclouds.concurrent.FutureIterables.transformParallel;
-
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.Callable;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.Constants;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.logging.Logger;
-import org.jclouds.trmk.vcloud_0_8.domain.Org;
-
-import com.google.common.base.Function;
-import com.google.common.base.Supplier;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.ListeningExecutorService;
-
-/**
- * @author Adrian Cole
- */
-@Singleton
-public class VCloudImageSupplier implements Supplier<Set<? extends Image>> {
-
-   @Resource
-   @Named(ComputeServiceConstants.COMPUTE_LOGGER)
-   public Logger logger = Logger.NULL;
-
-   private final Supplier<Map<String, ? extends Org>> orgMap;
-   private final Function<Org, Iterable<? extends Image>> imagesInOrg;
-   private final ListeningExecutorService userExecutor;
-
-   @Inject
-   VCloudImageSupplier(Supplier<Map<String, ? extends Org>> orgMap,
-            Function<Org, Iterable<? extends Image>> imagesInOrg,
-            @Named(Constants.PROPERTY_USER_THREADS) ListeningExecutorService userExecutor) {
-      this.orgMap = checkNotNull(orgMap, "orgMap");
-      this.imagesInOrg = checkNotNull(imagesInOrg, "imagesInOrg");
-      this.userExecutor = checkNotNull(userExecutor, "userExecutor");
-   }
-
-   @Override
-   public Set<? extends Image> get() {
-      Iterable<? extends Org> orgs = checkNotNull(orgMap.get().values(), "orgs");
-      Iterable<? extends Iterable<? extends Image>> images = transformParallel(orgs,
-               new Function<Org, ListenableFuture<? extends Iterable<? extends Image>>>() {
-
-                  @Override
-                  public ListenableFuture<Iterable<? extends Image>> apply(final Org from) {
-                     checkNotNull(from, "org");
-                     return userExecutor.submit(new Callable<Iterable<? extends Image>>() {
-
-                        @Override
-                        public Iterable<? extends Image> call() throws Exception {
-                           return imagesInOrg.apply(from);
-                        }
-
-                        @Override
-                        public String toString() {
-                           return "imagesInOrg(" + from.getHref() + ")";
-                        }
-                     });
-                  }
-
-               }, userExecutor, null, logger, "images in " + orgs);
-      return newLinkedHashSet(concat(images));
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultCatalogForOrg.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultCatalogForOrg.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultCatalogForOrg.java
deleted file mode 100644
index 7fdc13b..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultCatalogForOrg.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.config;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static org.jclouds.trmk.vcloud_0_8.reference.VCloudConstants.PROPERTY_VCLOUD_DEFAULT_CATALOG;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.config.ValueOfConfigurationKeyOrNull;
-import org.jclouds.trmk.vcloud_0_8.domain.Org;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Catalog;
-import org.jclouds.trmk.vcloud_0_8.suppliers.OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-
-/**
- * 
- * @author Adrian Cole
- */
-@Singleton
-public class DefaultCatalogForOrg implements Function<ReferenceType, ReferenceType> {
-   private final OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault selector;
-   private final Supplier<Map<String, ? extends Org>> nameToOrg;
-
-   @Inject
-   public DefaultCatalogForOrg(ValueOfConfigurationKeyOrNull valueOfConfigurationKeyOrNull,
-         @Catalog Predicate<ReferenceType> defaultSelector, Supplier<Map<String, ? extends Org>> nameToOrg) {
-      this.selector = new OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault(checkNotNull(
-            valueOfConfigurationKeyOrNull, "valueOfConfigurationKeyOrNull"), PROPERTY_VCLOUD_DEFAULT_CATALOG,
-            checkNotNull(defaultSelector, "defaultSelector"));
-      this.nameToOrg = checkNotNull(nameToOrg, "nameToOrg");
-   }
-
-   @Override
-   public ReferenceType apply(ReferenceType defaultOrg) {
-      org.jclouds.trmk.vcloud_0_8.domain.Org org = nameToOrg.get().get(defaultOrg.getName());
-      checkState(org != null, "could not retrieve Org at %s", defaultOrg);
-      return selector.apply(org.getCatalogs().values());
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultNetworkForVDC.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultNetworkForVDC.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultNetworkForVDC.java
deleted file mode 100644
index 122e8ca..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultNetworkForVDC.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.config;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static org.jclouds.trmk.vcloud_0_8.reference.VCloudConstants.PROPERTY_VCLOUD_DEFAULT_NETWORK;
-
-import java.net.URI;
-import java.util.Map;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.config.ValueOfConfigurationKeyOrNull;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.domain.VDC;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Network;
-import org.jclouds.trmk.vcloud_0_8.suppliers.OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-
-/**
- * 
- * @author Adrian Cole
- */
-@Singleton
-public class DefaultNetworkForVDC implements Function<ReferenceType, ReferenceType> {
-
-   private final OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault selector;
-   private final Supplier<Map<URI, ? extends VDC>> uriToVDC;
-
-   @Inject
-   public DefaultNetworkForVDC(ValueOfConfigurationKeyOrNull valueOfConfigurationKeyOrNull,
-         @Network Predicate<ReferenceType> defaultSelector,
-         Supplier<Map<URI, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>> uriToVDC) {
-      this.selector = new OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault(checkNotNull(
-            valueOfConfigurationKeyOrNull, "valueOfConfigurationKeyOrNull"), PROPERTY_VCLOUD_DEFAULT_NETWORK,
-            checkNotNull(defaultSelector, "defaultSelector"));
-      this.uriToVDC = checkNotNull(uriToVDC, "uriToVDC");
-   }
-
-   @Override
-   public ReferenceType apply(ReferenceType defaultVDC) {
-      org.jclouds.trmk.vcloud_0_8.domain.VDC vDC = uriToVDC.get().get(defaultVDC.getHref());
-      checkState(vDC != null, "could not retrieve VDC at %s", defaultVDC);
-      return selector.apply(vDC.getAvailableNetworks().values());
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultOrgForUser.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultOrgForUser.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultOrgForUser.java
deleted file mode 100644
index ded2452..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultOrgForUser.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.config;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static org.jclouds.trmk.vcloud_0_8.reference.VCloudConstants.PROPERTY_VCLOUD_DEFAULT_ORG;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.config.ValueOfConfigurationKeyOrNull;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.domain.VCloudSession;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Org;
-import org.jclouds.trmk.vcloud_0_8.suppliers.OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault;
-
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-
-/**
- * 
- * @author Adrian Cole
- */
-@Singleton
-public class DefaultOrgForUser implements Supplier<ReferenceType> {
-
-   private final OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault selector;
-   private final Supplier<VCloudSession> session;
-
-   @Inject
-   public DefaultOrgForUser(ValueOfConfigurationKeyOrNull valueOfConfigurationKeyOrNull,
-         @Org Predicate<ReferenceType> defaultSelector, Supplier<VCloudSession> session) {
-      this.selector = new OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault(checkNotNull(
-            valueOfConfigurationKeyOrNull, "valueOfConfigurationKeyOrNull"), PROPERTY_VCLOUD_DEFAULT_ORG, checkNotNull(
-            defaultSelector, "defaultSelector"));
-      this.session = checkNotNull(session, "session");
-   }
-
-   @Override
-   public ReferenceType get() {
-      return selector.apply(session.get().getOrgs().values());
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultTasksListForOrg.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultTasksListForOrg.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultTasksListForOrg.java
deleted file mode 100644
index 42cc3d1..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultTasksListForOrg.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.config;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static org.jclouds.trmk.vcloud_0_8.reference.VCloudConstants.PROPERTY_VCLOUD_DEFAULT_TASKSLIST;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.config.ValueOfConfigurationKeyOrNull;
-import org.jclouds.trmk.vcloud_0_8.domain.Org;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.endpoints.TasksList;
-import org.jclouds.trmk.vcloud_0_8.suppliers.OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-
-/**
- * 
- * @author Adrian Cole
- */
-@Singleton
-public class DefaultTasksListForOrg implements Function<ReferenceType, ReferenceType> {
-   private final OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault selector;
-   private final Supplier<Map<String, ? extends Org>> nameToOrg;
-
-   @Inject
-   public DefaultTasksListForOrg(ValueOfConfigurationKeyOrNull valueOfConfigurationKeyOrNull,
-         @TasksList Predicate<ReferenceType> defaultSelector, Supplier<Map<String, ? extends Org>> nameToOrg) {
-      this.selector = new OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault(checkNotNull(
-            valueOfConfigurationKeyOrNull, "valueOfConfigurationKeyOrNull"), PROPERTY_VCLOUD_DEFAULT_TASKSLIST,
-            checkNotNull(defaultSelector, "defaultSelector"));
-      this.nameToOrg = checkNotNull(nameToOrg, "nameToOrg");
-   }
-
-   @Override
-   public ReferenceType apply(ReferenceType defaultOrg) {
-      org.jclouds.trmk.vcloud_0_8.domain.Org org = nameToOrg.get().get(defaultOrg.getName());
-      checkState(org != null, "could not retrieve Org at %s", defaultOrg);
-      return selector.apply(org.getTasksLists().values());
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVCloudReferencesModule.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVCloudReferencesModule.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVCloudReferencesModule.java
deleted file mode 100644
index 5787c48..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVCloudReferencesModule.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.config;
-
-import java.net.URI;
-import java.util.Map;
-
-import javax.inject.Singleton;
-
-import org.jclouds.trmk.vcloud_0_8.domain.Catalog;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Org;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableMap.Builder;
-import com.google.inject.AbstractModule;
-import com.google.inject.Injector;
-import com.google.inject.Provides;
-import com.google.inject.TypeLiteral;
-
-/**
- * 
- * @author Adrian Cole
- */
-public class DefaultVCloudReferencesModule extends AbstractModule {
-
-   @Override
-   protected void configure() {
-      bind(new TypeLiteral<Supplier<ReferenceType>>() {
-      }).annotatedWith(Org.class).to(DefaultOrgForUser.class);
-   }
-
-   @Provides
-   @Singleton
-   @org.jclouds.trmk.vcloud_0_8.endpoints.Org
-   protected Predicate<ReferenceType> provideDefaultOrgSelector(Injector i) {
-      return Predicates.alwaysTrue();
-   }
-
-   @Provides
-   @org.jclouds.trmk.vcloud_0_8.endpoints.TasksList
-   @Singleton
-   protected Supplier<ReferenceType> provideDefaultTasksList(DefaultTasksListForOrg defaultTasksListURIForOrg,
-         @org.jclouds.trmk.vcloud_0_8.endpoints.Org Supplier<ReferenceType> defaultOrg) {
-      return Suppliers.compose(defaultTasksListURIForOrg, defaultOrg);
-   }
-
-   @Provides
-   @Singleton
-   @org.jclouds.trmk.vcloud_0_8.endpoints.TasksList
-   protected Predicate<ReferenceType> provideDefaultTasksListSelector(Injector i) {
-      return Predicates.alwaysTrue();
-   }
-
-   @Provides
-   @org.jclouds.trmk.vcloud_0_8.endpoints.Catalog
-   @Singleton
-   protected Supplier<ReferenceType> provideDefaultCatalog(DefaultCatalogForOrg defaultCatalogURIForOrg,
-         @org.jclouds.trmk.vcloud_0_8.endpoints.Org Supplier<ReferenceType> defaultOrg) {
-      return Suppliers.compose(defaultCatalogURIForOrg, defaultOrg);
-   }
-
-   @Provides
-   @Singleton
-   @org.jclouds.trmk.vcloud_0_8.endpoints.Catalog
-   protected Predicate<ReferenceType> provideDefaultCatalogSelector(Injector i) {
-      return Predicates.alwaysTrue();
-   }
-
-   @Provides
-   @Singleton
-   protected Supplier<Map<URI, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>> provideCatalogsById(
-         Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>> supplier) {
-      return Suppliers
-            .compose(
-                  new Function<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>, Map<URI, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>() {
-
-                     @Override
-                     public Map<URI, ? extends Catalog> apply(Map<String, Map<String, ? extends Catalog>> arg0) {
-                        Builder<URI, Catalog> builder = ImmutableMap.builder();
-                        for (Map<String, ? extends Catalog> v1 : arg0.values()) {
-                           for (Catalog v2 : v1.values()) {
-                              builder.put(v2.getHref(), v2);
-                           }
-                        }
-                        return builder.build();
-                     }
-
-                  }, supplier);
-   }
-
-   @Provides
-   @org.jclouds.trmk.vcloud_0_8.endpoints.VDC
-   @Singleton
-   protected Supplier<ReferenceType> provideDefaultVDC(DefaultVDCForOrg defaultVDCURIForOrg,
-         @org.jclouds.trmk.vcloud_0_8.endpoints.Org Supplier<ReferenceType> defaultOrg) {
-      return Suppliers.compose(defaultVDCURIForOrg, defaultOrg);
-   }
-
-   @Provides
-   @Singleton
-   @org.jclouds.trmk.vcloud_0_8.endpoints.VDC
-   protected Predicate<ReferenceType> provideDefaultVDCSelector(Injector i) {
-      return Predicates.alwaysTrue();
-   }
-
-   @Provides
-   @org.jclouds.trmk.vcloud_0_8.endpoints.Network
-   @Singleton
-   protected Supplier<ReferenceType> provideDefaultNetwork(DefaultNetworkForVDC defaultNetworkURIForVDC,
-         @org.jclouds.trmk.vcloud_0_8.endpoints.VDC Supplier<ReferenceType> defaultVDC) {
-      return Suppliers.compose(defaultNetworkURIForVDC, defaultVDC);
-   }
-
-   @Provides
-   @Singleton
-   @org.jclouds.trmk.vcloud_0_8.endpoints.Network
-   protected Predicate<ReferenceType> provideDefaultNetworkSelector(Injector i) {
-      return Predicates.alwaysTrue();
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVDCForOrg.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVDCForOrg.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVDCForOrg.java
deleted file mode 100644
index c064016..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVDCForOrg.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.config;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static org.jclouds.trmk.vcloud_0_8.reference.VCloudConstants.PROPERTY_VCLOUD_DEFAULT_VDC;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.config.ValueOfConfigurationKeyOrNull;
-import org.jclouds.trmk.vcloud_0_8.domain.Org;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.endpoints.VDC;
-import org.jclouds.trmk.vcloud_0_8.suppliers.OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-
-/**
- * 
- * @author Adrian Cole
- */
-@Singleton
-public class DefaultVDCForOrg implements Function<ReferenceType, ReferenceType> {
-   private final OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault selector;
-   private final Supplier<Map<String, ? extends Org>> nameToOrg;
-
-   @Inject
-   public DefaultVDCForOrg(ValueOfConfigurationKeyOrNull valueOfConfigurationKeyOrNull,
-         @VDC Predicate<ReferenceType> defaultSelector, Supplier<Map<String, ? extends Org>> nameToOrg) {
-      this.selector = new OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault(checkNotNull(
-            valueOfConfigurationKeyOrNull, "valueOfConfigurationKeyOrNull"), PROPERTY_VCLOUD_DEFAULT_VDC, checkNotNull(
-            defaultSelector, "defaultSelector"));
-      this.nameToOrg = checkNotNull(nameToOrg, "nameToOrg");
-   }
-
-   @Override
-   public ReferenceType apply(ReferenceType defaultOrg) {
-      org.jclouds.trmk.vcloud_0_8.domain.Org org = nameToOrg.get().get(defaultOrg.getName());
-      checkState(org != null, "could not retrieve Org at %s", defaultOrg);
-      return selector.apply(org.getVDCs().values());
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/TerremarkVCloudHttpApiModule.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/TerremarkVCloudHttpApiModule.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/TerremarkVCloudHttpApiModule.java
deleted file mode 100644
index 662d549..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/TerremarkVCloudHttpApiModule.java
+++ /dev/null
@@ -1,558 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.config;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static com.google.common.collect.Iterables.concat;
-import static com.google.common.collect.Iterables.getLast;
-import static com.google.common.collect.Iterables.transform;
-import static com.google.common.collect.Maps.transformValues;
-import static com.google.common.collect.Maps.uniqueIndex;
-import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL;
-import static org.jclouds.rest.config.BinderUtils.bindHttpApi;
-import static org.jclouds.trmk.vcloud_0_8.reference.VCloudConstants.PROPERTY_VCLOUD_TIMEOUT_TASK_COMPLETED;
-import static org.jclouds.util.Predicates2.retry;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.SortedMap;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicReference;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.domain.Location;
-import org.jclouds.http.HttpErrorHandler;
-import org.jclouds.http.annotation.ClientError;
-import org.jclouds.http.annotation.Redirection;
-import org.jclouds.http.annotation.ServerError;
-import org.jclouds.location.suppliers.ImplicitLocationSupplier;
-import org.jclouds.location.suppliers.LocationsSupplier;
-import org.jclouds.rest.AuthorizationException;
-import org.jclouds.rest.annotations.ApiVersion;
-import org.jclouds.rest.config.HttpApiModule;
-import org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier;
-import org.jclouds.trmk.vcloud_0_8.TerremarkVCloudApi;
-import org.jclouds.trmk.vcloud_0_8.VCloudToken;
-import org.jclouds.trmk.vcloud_0_8.compute.functions.FindLocationForResource;
-import org.jclouds.trmk.vcloud_0_8.domain.Catalog;
-import org.jclouds.trmk.vcloud_0_8.domain.CatalogItem;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.domain.VAppTemplate;
-import org.jclouds.trmk.vcloud_0_8.domain.VCloudSession;
-import org.jclouds.trmk.vcloud_0_8.domain.VDC;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Keys;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Org;
-import org.jclouds.trmk.vcloud_0_8.endpoints.OrgList;
-import org.jclouds.trmk.vcloud_0_8.endpoints.VCloudLogin;
-import org.jclouds.trmk.vcloud_0_8.functions.AllCatalogItemsInCatalog;
-import org.jclouds.trmk.vcloud_0_8.functions.AllCatalogItemsInOrg;
-import org.jclouds.trmk.vcloud_0_8.functions.AllCatalogsInOrg;
-import org.jclouds.trmk.vcloud_0_8.functions.AllVDCsInOrg;
-import org.jclouds.trmk.vcloud_0_8.functions.OrgsForLocations;
-import org.jclouds.trmk.vcloud_0_8.functions.OrgsForNames;
-import org.jclouds.trmk.vcloud_0_8.functions.VAppTemplatesForCatalogItems;
-import org.jclouds.trmk.vcloud_0_8.handlers.ParseTerremarkVCloudErrorFromHttpResponse;
-import org.jclouds.trmk.vcloud_0_8.internal.TerremarkVCloudLoginApi;
-import org.jclouds.trmk.vcloud_0_8.internal.TerremarkVCloudVersionsApi;
-import org.jclouds.trmk.vcloud_0_8.location.DefaultVDC;
-import org.jclouds.trmk.vcloud_0_8.location.OrgAndVDCToLocationSupplier;
-import org.jclouds.trmk.vcloud_0_8.predicates.TaskSuccess;
-import org.jclouds.util.Strings2;
-
-import com.google.common.base.Function;
-import com.google.common.base.Objects;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableMap.Builder;
-import com.google.common.collect.Maps;
-import com.google.inject.Injector;
-import com.google.inject.Provides;
-import com.google.inject.Scopes;
-import com.google.inject.TypeLiteral;
-
-public class TerremarkVCloudHttpApiModule<S> extends HttpApiModule<S> {
-
-   public TerremarkVCloudHttpApiModule() {
-   }
-
-   @Override
-   protected void configure() {
-      super.configure();
-      bind(new TypeLiteral<Function<Iterable<? extends CatalogItem>, Iterable<? extends VAppTemplate>>>() {
-      }).to(new TypeLiteral<VAppTemplatesForCatalogItems>() {
-      });
-      installDefaultVCloudEndpointsModule();
-      bind(new TypeLiteral<Function<ReferenceType, Location>>() {
-      }).to(new TypeLiteral<FindLocationForResource>() {
-      });
-      bind(new TypeLiteral<Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends Catalog>>>() {
-      }).to(new TypeLiteral<AllCatalogsInOrg>() {
-      });
-      bind(new TypeLiteral<Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends VDC>>>() {
-      }).to(new TypeLiteral<AllVDCsInOrg>() {
-      });
-      bind(new TypeLiteral<Function<Iterable<String>, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Org>>>() {
-      }).to(new TypeLiteral<OrgsForNames>() {
-      });
-      bind(
-            new TypeLiteral<Function<Iterable<? extends Location>, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Org>>>() {
-            }).to(new TypeLiteral<OrgsForLocations>() {
-      });
-      bind(new TypeLiteral<Function<Catalog, Iterable<? extends CatalogItem>>>() {
-      }).to(new TypeLiteral<AllCatalogItemsInCatalog>() {
-      });
-      bind(new TypeLiteral<Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends CatalogItem>>>() {
-      }).to(new TypeLiteral<AllCatalogItemsInOrg>() {
-      });
-      bindHttpApi(binder(), TerremarkVCloudVersionsApi.class);
-      bindHttpApi(binder(), TerremarkVCloudLoginApi.class);
-   }
-
-   @Provides
-   @Singleton
-   @org.jclouds.trmk.vcloud_0_8.endpoints.VDC
-   protected Supplier<Map<String, String>> provideVDCtoORG(
-         Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> orgNameToOrgSupplier) {
-      return Suppliers.compose(
-            new Function<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>, Map<String, String>>() {
-
-               @Override
-               public Map<String, String> apply(Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org> arg0) {
-                  Builder<String, String> returnVal = ImmutableMap.builder();
-                  for (Entry<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org> orgr : arg0.entrySet()) {
-                     for (String vdc : orgr.getValue().getVDCs().keySet()) {
-                        returnVal.put(vdc, orgr.getKey());
-                     }
-                  }
-                  return returnVal.build();
-               }
-            }, orgNameToOrgSupplier);
-
-   }
-
-   @Provides
-   @Singleton
-   protected Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> provideOrgMapCache(
-         @Named(PROPERTY_SESSION_INTERVAL) long seconds, AtomicReference<AuthorizationException> authException,
-         OrgMapSupplier supplier) {
-      return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
-               TimeUnit.SECONDS);
-   }
-
-   @Provides
-   @Singleton
-   @OrgList
-   protected Supplier<URI> provideOrgListURI(Supplier<VCloudSession> sessionSupplier) {
-      return Suppliers.compose(new Function<VCloudSession, URI>() {
-
-         @Override
-         public URI apply(VCloudSession arg0) {
-            return URI.create(getLast(arg0.getOrgs().values()).getHref().toASCIIString().replaceAll("org/.*", "org"));
-         }
-
-         @Override
-         public String toString() {
-            return "orgListURI()";
-         }
-
-      }, sessionSupplier);
-   }
-
-   @Singleton
-   public static class OrgMapSupplier implements
-         Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> {
-      protected final Supplier<VCloudSession> sessionSupplier;
-      protected final Function<Iterable<String>, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> organizationsForNames;
-
-      @Inject
-      protected OrgMapSupplier(Supplier<VCloudSession> sessionSupplier,
-            Function<Iterable<String>, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> organizationsForNames) {
-         this.sessionSupplier = sessionSupplier;
-         this.organizationsForNames = organizationsForNames;
-      }
-
-      @Override
-      public Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org> get() {
-         return uniqueIndex(organizationsForNames.apply(sessionSupplier.get().getOrgs().keySet()), name);
-      }
-   }
-
-   protected void installDefaultVCloudEndpointsModule() {
-      install(new DefaultVCloudReferencesModule());
-   }
-
-   @Singleton
-   public static class OrgCatalogSupplier implements
-         Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>> {
-      protected final Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> orgSupplier;
-      protected final Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>> allCatalogsInOrg;
-
-      @Inject
-      protected OrgCatalogSupplier(
-            Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> orgSupplier,
-            Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>> allCatalogsInOrg) {
-         this.orgSupplier = orgSupplier;
-         this.allCatalogsInOrg = allCatalogsInOrg;
-      }
-
-      @Override
-      public Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>> get() {
-         return transformValues(
-               transformValues(orgSupplier.get(), allCatalogsInOrg),
-               new Function<Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>() {
-
-                  @Override
-                  public Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog> apply(
-                        Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog> from) {
-                     return uniqueIndex(from, name);
-                  }
-
-               });
-      }
-   }
-
-   @VCloudToken
-   @Provides
-   String provideVCloudToken(Supplier<VCloudSession> cache) {
-      return checkNotNull(cache.get().getVCloudToken(), "No token present in session");
-   }
-
-   @Provides
-   @org.jclouds.trmk.vcloud_0_8.endpoints.Org
-   @Singleton
-   protected Supplier<Map<String, ReferenceType>> provideVDCtoORG(@Named(PROPERTY_SESSION_INTERVAL) long seconds,
-         AtomicReference<AuthorizationException> authException, OrgNameToOrgSupplier supplier) {
-      return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
-               TimeUnit.SECONDS);
-   }
-
-   @Provides
-   @Singleton
-   protected Supplier<Map<URI, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>> provideURIToVDC(
-         @Named(PROPERTY_SESSION_INTERVAL) long seconds, AtomicReference<AuthorizationException> authException,
-         URItoVDC supplier) {
-      return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
-               TimeUnit.SECONDS);
-   }
-
-   @Singleton
-   public static class URItoVDC implements Supplier<Map<URI, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>> {
-      private final Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>>> orgVDCMap;
-
-      @Inject
-      URItoVDC(Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>>> orgVDCMap) {
-         this.orgVDCMap = orgVDCMap;
-      }
-
-      @Override
-      public Map<URI, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC> get() {
-         return uniqueIndex(
-               concat(transform(
-                     orgVDCMap.get().values(),
-                     new Function<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>>() {
-
-                        @Override
-                        public Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.VDC> apply(
-                              Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC> from) {
-                           return from.values();
-                        }
-
-                     })), new Function<org.jclouds.trmk.vcloud_0_8.domain.VDC, URI>() {
-
-                  @Override
-                  public URI apply(org.jclouds.trmk.vcloud_0_8.domain.VDC from) {
-                     return from.getHref();
-                  }
-
-               });
-      }
-
-   }
-
-   static final Function<ReferenceType, String> name = new Function<ReferenceType, String>() {
-
-      @Override
-      public String apply(ReferenceType from) {
-         return from.getName();
-      }
-
-   };
-
-
-   @Provides
-   @Singleton
-   @VCloudLogin
-   protected Supplier<URI> provideAuthenticationURI(final TerremarkVCloudVersionsApi versionService,
-            @ApiVersion final String version) {
-      return new Supplier<URI>() {
-
-         @Override
-         public URI get() {
-            SortedMap<String, URI> versions = versionService.getSupportedVersions();
-            checkState(versions.size() > 0, "No versions present");
-            checkState(versions.containsKey(version), "version " + version + " not present in: " + versions);
-            return versions.get(version);
-         }
-
-         public String toString() {
-            return "login()";
-         }
-      };
-   }
-
-
-   @Singleton
-   private static class OrgNameToOrgSupplier implements Supplier<Map<String, ReferenceType>> {
-      private final Supplier<VCloudSession> sessionSupplier;
-
-      @Inject
-      OrgNameToOrgSupplier(Supplier<VCloudSession> sessionSupplier) {
-         this.sessionSupplier = sessionSupplier;
-      }
-
-      @Override
-      public Map<String, ReferenceType> get() {
-         return sessionSupplier.get().getOrgs();
-      }
-
-   }
-
-   @Provides
-   @Singleton
-   protected Supplier<org.jclouds.trmk.vcloud_0_8.domain.Org> provideOrg(
-         final Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> orgSupplier,
-         @org.jclouds.trmk.vcloud_0_8.endpoints.Org Supplier<ReferenceType> defaultOrg) {
-      return Suppliers.compose(new Function<ReferenceType, org.jclouds.trmk.vcloud_0_8.domain.Org>() {
-
-         @Override
-         public org.jclouds.trmk.vcloud_0_8.domain.Org apply(ReferenceType input) {
-            return orgSupplier.get().get(input.getName());
-
-         }
-      }, defaultOrg);
-   }
-
-   @Provides
-   @Singleton
-   protected Predicate<URI> successTester(Injector injector,
-         @Named(PROPERTY_VCLOUD_TIMEOUT_TASK_COMPLETED) long completed) {
-      return retry(injector.getInstance(TaskSuccess.class), completed);
-   }
-
-   @Provides
-   @Singleton
-   protected Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>> provideOrgCatalogItemMapSupplierCache(
-         @Named(PROPERTY_SESSION_INTERVAL) long seconds, AtomicReference<AuthorizationException> authException,
-         OrgCatalogSupplier supplier) {
-      return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
-               TimeUnit.SECONDS);
-   }
-
-   @Provides
-   @Singleton
-   protected Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>>> provideOrgVDCSupplierCache(
-         @Named(PROPERTY_SESSION_INTERVAL) long seconds, AtomicReference<AuthorizationException> authException,
-         OrgVDCSupplier supplier) {
-      return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
-               TimeUnit.SECONDS);
-   }
-
-   @Singleton
-   public static class OrgVDCSupplier implements
-         Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>>> {
-      protected final Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> orgSupplier;
-      private final Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>> allVDCsInOrg;
-
-      @Inject
-      protected OrgVDCSupplier(
-            Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> orgSupplier,
-            Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>> allVDCsInOrg) {
-         this.orgSupplier = orgSupplier;
-         this.allVDCsInOrg = allVDCsInOrg;
-      }
-
-      @Override
-      public Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>> get() {
-         return transformValues(
-               transformValues(orgSupplier.get(), allVDCsInOrg),
-               new Function<Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>>() {
-
-                  @Override
-                  public Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC> apply(
-                        Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.VDC> from) {
-                     return uniqueIndex(from, name);
-                  }
-
-               });
-      }
-   }
-
-   @Singleton
-   public static class OrgCatalogItemSupplier implements
-         Supplier<Map<String, Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.CatalogItem>>>> {
-      protected final Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>> catalogSupplier;
-      protected final Function<org.jclouds.trmk.vcloud_0_8.domain.Catalog, Iterable<? extends CatalogItem>> allCatalogItemsInCatalog;
-
-      @Inject
-      protected OrgCatalogItemSupplier(
-            Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>> catalogSupplier,
-            Function<org.jclouds.trmk.vcloud_0_8.domain.Catalog, Iterable<? extends CatalogItem>> allCatalogItemsInCatalog) {
-         this.catalogSupplier = catalogSupplier;
-         this.allCatalogItemsInCatalog = allCatalogItemsInCatalog;
-      }
-
-      @Override
-      public Map<String, Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.CatalogItem>>> get() {
-         return transformValues(
-               catalogSupplier.get(),
-               new Function<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>, Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.CatalogItem>>>() {
-
-                  @Override
-                  public Map<String, Map<String, ? extends CatalogItem>> apply(
-                        Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog> from) {
-                     return transformValues(
-                           from,
-                           new Function<org.jclouds.trmk.vcloud_0_8.domain.Catalog, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.CatalogItem>>() {
-
-                              @Override
-                              public Map<String, ? extends CatalogItem> apply(
-                                    org.jclouds.trmk.vcloud_0_8.domain.Catalog from) {
-                                 return uniqueIndex(allCatalogItemsInCatalog.apply(from), name);
-                              }
-                           });
-
-                  }
-               });
-      }
-   }
-
-   @Provides
-   @Singleton
-   protected Supplier<Map<String, Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.CatalogItem>>>> provideOrgCatalogItemSupplierCache(
-         @Named(PROPERTY_SESSION_INTERVAL) long seconds, AtomicReference<AuthorizationException> authException,
-         OrgCatalogItemSupplier supplier) {
-      return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
-               TimeUnit.SECONDS);
-   }
-
-   /**
-    * 
-    * @return a listing of all orgs that the current user has access to.
-    */
-   @Provides
-   @Org
-   Map<String, ReferenceType> listOrgs(Supplier<VCloudSession> sessionSupplier) {
-      return sessionSupplier.get().getOrgs();
-   }
-
-
-   @Provides
-   @Singleton
-   protected Supplier<VCloudSession> provideVCloudTokenCache(@Named(PROPERTY_SESSION_INTERVAL) long seconds,
-            AtomicReference<AuthorizationException> authException, final TerremarkVCloudLoginApi login) {
-      return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException,
-               new Supplier<VCloudSession>() {
-
-                  @Override
-                  public VCloudSession get() {
-                     return login.login();
-                  }
-                  
-                  @Override
-                  public String toString() {
-                     return Objects.toStringHelper(login).add("method", "login").toString();
-                  }
-               }, seconds, TimeUnit.SECONDS);
-   }
-
-   @Singleton
-   @Provides
-   @Named("CreateInternetService")
-   String provideCreateInternetService() throws IOException {
-      return Strings2.toStringAndClose(getClass().getResourceAsStream("/CreateInternetService.xml"));
-   }
-
-   @Singleton
-   @Provides
-   @Named("CreateNodeService")
-   String provideCreateNodeService() throws IOException {
-      return Strings2.toStringAndClose(getClass().getResourceAsStream("/CreateNodeService.xml"));
-   }
-
-   @Override
-   protected void bindErrorHandlers() {
-      bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(ParseTerremarkVCloudErrorFromHttpResponse.class);
-      bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(ParseTerremarkVCloudErrorFromHttpResponse.class);
-      bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(ParseTerremarkVCloudErrorFromHttpResponse.class);
-   }
-
-   @Singleton
-   public static class OrgNameToKeysListSupplier implements Supplier<Map<String, ReferenceType>> {
-      protected final Supplier<VCloudSession> sessionSupplier;
-      private final TerremarkVCloudApi client;
-
-      @Inject
-      protected OrgNameToKeysListSupplier(Supplier<VCloudSession> sessionSupplier, TerremarkVCloudApi client) {
-         this.sessionSupplier = sessionSupplier;
-         this.client = client;
-      }
-
-      @Override
-      public Map<String, ReferenceType> get() {
-         return Maps.transformValues(sessionSupplier.get().getOrgs(), new Function<ReferenceType, ReferenceType>() {
-
-            @Override
-            public ReferenceType apply(ReferenceType from) {
-               return client.findOrgNamed(from.getName()).getKeys();
-            }
-
-         });
-      }
-   }
-
-   @Provides
-   @Singleton
-   @Keys
-   protected Supplier<Map<String, ReferenceType>> provideOrgToKeysListCache(
-         @Named(PROPERTY_SESSION_INTERVAL) long seconds, AtomicReference<AuthorizationException> authException,
-         OrgNameToKeysListSupplier supplier) {
-      return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
-               TimeUnit.SECONDS);
-   }
-
-   @Singleton
-   @Provides
-   @Named("CreateKey")
-   String provideCreateKey() throws IOException {
-      return Strings2.toStringAndClose(getClass().getResourceAsStream("/CreateKey.xml"));
-   }
-
-   @Override
-   protected void installLocations() {
-      super.installLocations();
-      bind(ImplicitLocationSupplier.class).to(DefaultVDC.class).in(Scopes.SINGLETON);
-      bind(LocationsSupplier.class).to(OrgAndVDCToLocationSupplier.class).in(Scopes.SINGLETON);
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Capacity.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Capacity.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Capacity.java
deleted file mode 100644
index 004ef70..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Capacity.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.domain;
-
-/**
- * reports storage resource consumption in a vDC.
- * 
- * @author Adrian Cole
- */
-public class Capacity {
-
-   private final String units;
-   private final long allocated;
-   private final long limit;
-   private final int used;
-   private final long overhead;
-
-   public Capacity(String units, long allocated, long limit, int used, long overhead) {
-      this.units = units;
-      this.limit = limit;
-      this.allocated = allocated;
-      this.used = used;
-      this.overhead = overhead;
-   }
-
-   public String getUnits() {
-      return units;
-   }
-
-   public long getAllocated() {
-      return allocated;
-   }
-
-   public long getLimit() {
-      return limit;
-   }
-
-   /**
-    * percentage of the allocation in use.
-    */
-   public int getUsed() {
-      return used;
-   }
-
-   /**
-    * number of Units allocated to vShield Manager virtual machines provisioned from this vDC.
-    */
-   public long getOverhead() {
-      return overhead;
-   }
-
-   @Override
-   public int hashCode() {
-      final int prime = 31;
-      int result = 1;
-      result = prime * result + (int) (allocated ^ (allocated >>> 32));
-      result = prime * result + (int) (limit ^ (limit >>> 32));
-      result = prime * result + (int) (overhead ^ (overhead >>> 32));
-      result = prime * result + ((units == null) ? 0 : units.hashCode());
-      result = prime * result + used;
-      return result;
-   }
-
-   @Override
-   public boolean equals(Object obj) {
-      if (this == obj)
-         return true;
-      if (obj == null)
-         return false;
-      if (getClass() != obj.getClass())
-         return false;
-      Capacity other = (Capacity) obj;
-      if (allocated != other.allocated)
-         return false;
-      if (limit != other.limit)
-         return false;
-      if (overhead != other.overhead)
-         return false;
-      if (units == null) {
-         if (other.units != null)
-            return false;
-      } else if (!units.equals(other.units))
-         return false;
-      if (used != other.used)
-         return false;
-      return true;
-   }
-
-   @Override
-   public String toString() {
-      return "[allocated=" + allocated + ", limit=" + limit + ", overhead=" + overhead + ", units=" + units + ", used="
-               + used + "]";
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Catalog.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Catalog.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Catalog.java
deleted file mode 100644
index 152facb..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Catalog.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.domain;
-
-import java.util.Map;
-
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.trmk.vcloud_0_8.domain.internal.CatalogImpl;
-
-import com.google.inject.ImplementedBy;
-
-/**
- * @author Adrian Cole
- */
-@org.jclouds.trmk.vcloud_0_8.endpoints.Catalog
-@ImplementedBy(CatalogImpl.class)
-public interface Catalog extends ReferenceType, Map<String, ReferenceType> {
-
-   /**
-    * optional description
-    * 
-    * @since vcloud api 0.8
-    */
-   @Nullable
-   String getDescription();
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CatalogItem.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CatalogItem.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CatalogItem.java
deleted file mode 100644
index f822909..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CatalogItem.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.domain;
-
-import java.util.Map;
-
-import org.jclouds.trmk.vcloud_0_8.domain.internal.CatalogItemImpl;
-
-import com.google.inject.ImplementedBy;
-
-/**
- * @author Adrian Cole
- */
-@ImplementedBy(CatalogItemImpl.class)
-public interface CatalogItem extends ReferenceType {
-
-   String getDescription();
-
-   ReferenceType getEntity();
-
-   Map<String, String> getProperties();
-
-   ReferenceType getComputeOptions();
-
-   ReferenceType getCustomizationOptions();
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/ComputePoolReference.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/ComputePoolReference.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/ComputePoolReference.java
deleted file mode 100644
index c0a3fd4..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/ComputePoolReference.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.domain;
-
-import static com.google.common.base.Objects.equal;
-
-import java.net.URI;
-
-import com.google.common.base.Objects;
-
-/**
- * @author Adrian Cole
- */
-public class ComputePoolReference implements Comparable<ComputePoolReference> {
-   public static Builder builder() {
-      return new Builder();
-   }
-
-   public Builder toBuilder() {
-      return builder().fromComputePoolReference(this);
-   }
-
-   public static class Builder {
-      private URI href;
-      private String name;
-
-      public Builder href(URI href) {
-         this.href = href;
-         return this;
-      }
-
-      public Builder name(String name) {
-         this.name = name;
-         return this;
-      }
-
-      public ComputePoolReference build() {
-         return new ComputePoolReference(href, name);
-      }
-
-      public Builder fromComputePoolReference(ComputePoolReference in) {
-         return href(in.getHref()).name(in.getName());
-      }
-
-   }
-
-   private final URI href;
-   private final String name;
-
-   public ComputePoolReference(URI href, String name) {
-      this.href = href;
-      this.name = name;
-   }
-
-   public int compareTo(ComputePoolReference that) {
-      return (this == that) ? 0 : getHref().compareTo(that.getHref());
-   }
-
-   public URI getHref() {
-      return href;
-   }
-
-   public String getName() {
-      return name;
-   }
-
-   @Override
-   public boolean equals(Object o) {
-      if (this == o)
-         return true;
-      if (o == null || getClass() != o.getClass())
-         return false;
-      ComputePoolReference that = ComputePoolReference.class.cast(o);
-      return equal(this.href, that.href) && equal(this.name, that.name);
-   }
-
-   @Override
-   public int hashCode() {
-      return Objects.hashCode(href, name);
-   }
-
-   @Override
-   public String toString() {
-      return Objects.toStringHelper("").add("href", href).add("name", name).toString();
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CustomizationParameters.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CustomizationParameters.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CustomizationParameters.java
deleted file mode 100644
index 359a7a9..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CustomizationParameters.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.domain;
-
-/**
- * The response lists which customization options are supported for this
- * particular vApp. The possible customization options are Network and Password.
- * 
- * @author Adrian Cole
- * @see <a
- *      href="https://community.vcloudexpress.terremark.com/en-us/product_docs/w/wiki/6-using-the-vcloud-express-api.aspx"
- *      >Terremark documentation</a>
- */
-public class CustomizationParameters {
-   private final boolean customizeNetwork;
-   private final boolean customizePassword;
-   private final boolean customizeSSH;
-
-   public CustomizationParameters(boolean customizeNetwork,
-         boolean customizePassword, boolean customizeSSH) {
-      this.customizeNetwork = customizeNetwork;
-      this.customizePassword = customizePassword;
-      this.customizeSSH = customizeSSH;
-   }
-
-   public boolean canCustomizeNetwork() {
-      return customizeNetwork;
-   }
-
-   public boolean canCustomizePassword() {
-      return customizePassword;
-   }
-
-   public boolean canCustomizeSSH() {
-      return customizeSSH;
-   }
-
-   @Override
-   public int hashCode() {
-      final int prime = 31;
-      int result = 1;
-      result = prime * result + (customizeNetwork ? 1231 : 1237);
-      result = prime * result + (customizePassword ? 1231 : 1237);
-      result = prime * result + (customizeSSH ? 1231 : 1237);
-      return result;
-   }
-
-   @Override
-   public boolean equals(Object obj) {
-      if (this == obj)
-         return true;
-      if (obj == null)
-         return false;
-      if (getClass() != obj.getClass())
-         return false;
-      CustomizationParameters other = (CustomizationParameters) obj;
-      if (customizeNetwork != other.customizeNetwork)
-         return false;
-      if (customizePassword != other.customizePassword)
-         return false;
-      if (customizeSSH != other.customizeSSH)
-         return false;
-      return true;
-   }
-
-   @Override
-   public String toString() {
-      return "CustomizationParameters [customizeNetwork=" + customizeNetwork
-            + ", customizePassword=" + customizePassword + ", customizeSSH="
-            + customizeSSH + "]";
-   }
-}