You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by jd...@apache.org on 2014/08/20 20:07:59 UTC

[1/4] Prefer isEmpty() for collections rather than size()

Repository: jclouds
Updated Branches:
  refs/heads/master 192785dba -> e711275fb


http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateOptions.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateOptions.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateOptions.java
index d1ec773..82f0cd4 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateOptions.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/AWSEC2TemplateOptions.java
@@ -79,7 +79,7 @@ public class AWSEC2TemplateOptions extends EC2TemplateOptions implements Cloneab
             eTo.noPlacementGroup();
          if (getPlacementGroup() != null)
             eTo.placementGroup(getPlacementGroup());
-         if (getGroupIds().size() > 0)
+         if (!getGroupIds().isEmpty())
             eTo.securityGroupIds(getGroupIds());
          if (getSpotPrice() != null)
             eTo.spotPrice(getSpotPrice());
@@ -131,7 +131,7 @@ public class AWSEC2TemplateOptions extends EC2TemplateOptions implements Cloneab
       toString.add("spotPrice", spotPrice);
       if (spotOptions != RequestSpotInstancesOptions.NONE)
          toString.add("spotOptions", spotOptions);
-      if (groupIds.size() != 0)
+      if (!groupIds.isEmpty())
          toString.add("groupIds", groupIds);
       toString.add("iamInstanceProfileArn", iamInstanceProfileArn);
       toString.add("iamInstanceProfileName", iamInstanceProfileName);
@@ -142,7 +142,7 @@ public class AWSEC2TemplateOptions extends EC2TemplateOptions implements Cloneab
 
    /**
     * Enable Cloudwatch monitoring
-    * 
+    *
     * @see CloudWatchClient
     */
    public AWSEC2TemplateOptions enableMonitoring() {
@@ -212,7 +212,7 @@ public class AWSEC2TemplateOptions extends EC2TemplateOptions implements Cloneab
    }
 
    /**
-    * 
+    *
     * @see AWSEC2TemplateOptions#securityGroupIds(Iterable<String>)
     */
    public AWSEC2TemplateOptions securityGroupIds(String... groupIds) {
@@ -223,7 +223,7 @@ public class AWSEC2TemplateOptions extends EC2TemplateOptions implements Cloneab
     * Specifies the security group ids to be used for nodes with this template
     */
    public AWSEC2TemplateOptions securityGroupIds(Iterable<String> groupIds) {
-      checkArgument(Iterables.size(groupIds) > 0, "you must specify at least one security group");
+      checkArgument(!Iterables.isEmpty(groupIds), "you must specify at least one security group");
       for (String groupId : groupIds)
          checkNotNull(emptyToNull(groupId), "all security groups must be non-empty");
       this.groupIds = ImmutableSet.copyOf(groupIds);
@@ -685,7 +685,7 @@ public class AWSEC2TemplateOptions extends EC2TemplateOptions implements Cloneab
    public AWSEC2TemplateOptions runScript(Statement script) {
       return AWSEC2TemplateOptions.class.cast(super.runScript(script));
    }
-   
+
    /**
     * {@inheritDoc}
     */
@@ -771,7 +771,7 @@ public class AWSEC2TemplateOptions extends EC2TemplateOptions implements Cloneab
 
    /**
     * The Amazon resource name (ARN) of the IAM Instance Profile (IIP) to associate with the instance.
-    * 
+    *
     * @see org.jclouds.aws.ec2.options.AWSRunInstancesOptions#withIAMInstanceProfileArn(String)
     */
    @SinceApiVersion("2012-06-01")
@@ -781,7 +781,7 @@ public class AWSEC2TemplateOptions extends EC2TemplateOptions implements Cloneab
 
    /**
     * The name of the IAM Instance Profile (IIP) to associate with the instance.
-    * 
+    *
     * @see org.jclouds.aws.ec2.options.AWSRunInstancesOptions#withIAMInstanceProfileName(String)
     */
    @SinceApiVersion("2012-06-01")

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/config/AWSEC2ComputeServiceContextModule.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/config/AWSEC2ComputeServiceContextModule.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/config/AWSEC2ComputeServiceContextModule.java
index 2f801bf..cde8e59 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/config/AWSEC2ComputeServiceContextModule.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/config/AWSEC2ComputeServiceContextModule.java
@@ -95,13 +95,13 @@ public class AWSEC2ComputeServiceContextModule extends BaseComputeServiceContext
    protected void installDependencies() {
       install(new AWSEC2ComputeServiceDependenciesModule());
    }
-   
+
    @Override
    protected boolean shouldEagerlyParseImages(Injector injector) {
       Map<String, String> queries = injector.getInstance(Key.get(new TypeLiteral<Map<String, String>>() {
       }, ImageQuery.class));
       // If no queries defined, then will never lookup all images
-      return queries.size() > 0;
+      return !queries.isEmpty();
    }
 
    // duplicates EC2ComputeServiceContextModule; but that's easiest thing to do with guice; could extract to common util
@@ -143,7 +143,7 @@ public class AWSEC2ComputeServiceContextModule extends BaseComputeServiceContext
             };
             return new SetAndThrowAuthorizationExceptionSupplier<Image>(rawSupplier, authException).get();
          }
-         
+
       });
    }
 
@@ -157,7 +157,7 @@ public class AWSEC2ComputeServiceContextModule extends BaseComputeServiceContext
    /**
     * With amazon linux 2011.09, ssh starts after package updates, which slows the boot process and
     * runs us out of ssh retries (context property {@code "jclouds.ssh.max-retries"}).
-    * 
+    *
     * @see <a href="http://aws.amazon.com/amazon-linux-ami/latest-release-notes/" />
     * @see AWSEC2PropertiesBuilder#defaultProperties
     */
@@ -165,7 +165,7 @@ public class AWSEC2ComputeServiceContextModule extends BaseComputeServiceContext
    protected TemplateOptions provideTemplateOptions(Injector injector, TemplateOptions options) {
       return options.as(EC2TemplateOptions.class).userData("#cloud-config\nrepo_upgrade: none\n".getBytes());
    }
-   
+
    @Override
    protected Optional<ImageExtension> provideImageExtension(Injector i) {
       return Optional.of(i.getInstance(ImageExtension.class));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java
index b73ff43..68fc14f 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/extensions/AWSEC2SecurityGroupExtension.java
@@ -136,14 +136,14 @@ public class AWSEC2SecurityGroupExtension extends EC2SecurityGroupExtension {
       builder.ipProtocol(protocol);
       builder.fromPort(startPort);
       builder.toPort(endPort);
-      
-      if (Iterables.size(ipRanges) > 0) {
+
+      if (!Iterables.isEmpty(ipRanges)) {
          for (String cidr : ipRanges) {
             builder.cidrBlock(cidr);
          }
       }
 
-      if (tenantIdGroupNamePairs.size() > 0) {
+      if (!tenantIdGroupNamePairs.isEmpty()) {
          for (String userId : tenantIdGroupNamePairs.keySet()) {
             for (String groupString : tenantIdGroupNamePairs.get(userId)) {
                String[] parts = AWSUtils.parseHandle(groupString);
@@ -157,7 +157,7 @@ public class AWSEC2SecurityGroupExtension extends EC2SecurityGroupExtension {
 
       return getSecurityGroupById(group.getId());
    }
-      
+
    @Override
    public SecurityGroup removeIpPermission(IpPermission ipPermission, SecurityGroup group) {
       String region = AWSUtils.getRegionFromLocationOrNull(group.getLocation());
@@ -181,14 +181,14 @@ public class AWSEC2SecurityGroupExtension extends EC2SecurityGroupExtension {
       builder.ipProtocol(protocol);
       builder.fromPort(startPort);
       builder.toPort(endPort);
-      
-      if (Iterables.size(ipRanges) > 0) {
+
+      if (!Iterables.isEmpty(ipRanges)) {
          for (String cidr : ipRanges) {
             builder.cidrBlock(cidr);
          }
       }
 
-      if (tenantIdGroupNamePairs.size() > 0) {
+      if (!tenantIdGroupNamePairs.isEmpty()) {
          for (String userId : tenantIdGroupNamePairs.keySet()) {
             for (String groupString : tenantIdGroupNamePairs.get(userId)) {
                String[] parts = AWSUtils.parseHandle(groupString);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/loaders/AWSEC2CreateSecurityGroupIfNeeded.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/loaders/AWSEC2CreateSecurityGroupIfNeeded.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/loaders/AWSEC2CreateSecurityGroupIfNeeded.java
index dd8ccf8..81f3e34 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/loaders/AWSEC2CreateSecurityGroupIfNeeded.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/loaders/AWSEC2CreateSecurityGroupIfNeeded.java
@@ -121,11 +121,11 @@ public class AWSEC2CreateSecurityGroupIfNeeded extends CacheLoader<RegionAndName
 
          Set<IpPermission> perms = permissions.build();
 
-         if (perms.size() > 0) {
+         if (!perms.isEmpty()) {
             logger.debug(">> authorizing securityGroup region(%s) name(%s) IpPermissions(%s)", region, name, perms);
             securityApi.authorizeSecurityGroupIngressInRegion(region, id, perms);
             logger.debug("<< authorized securityGroup(%s)", name);
-         }            
+         }
 
       } catch (IllegalStateException e) {
          logger.debug("<< reused securityGroup(%s)", name);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptions.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptions.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptions.java
index 78b9573..58dc2f1 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptions.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/strategy/CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptions.java
@@ -67,7 +67,7 @@ public class CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptions
          Provider<RunInstancesOptions> optionsProvider,
          @Named("PLACEMENT") LoadingCache<RegionAndName, String> placementGroupMap,
          CreatePlacementGroupIfNeeded createPlacementGroupIfNeeded,
-         Function<RegionNameAndPublicKeyMaterial, KeyPair> importExistingKeyPair, 
+         Function<RegionNameAndPublicKeyMaterial, KeyPair> importExistingKeyPair,
          GroupNamingConvention.Factory namingConvention) {
       super(makeKeyPair, credentialsMap, securityGroupMap, optionsProvider, namingConvention);
       this.placementGroupMap = placementGroupMap;
@@ -166,7 +166,7 @@ public class CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptions
    @Override
    protected boolean userSpecifiedTheirOwnGroups(TemplateOptions options) {
       return options instanceof AWSEC2TemplateOptions
-            && AWSEC2TemplateOptions.class.cast(options).getGroupIds().size() > 0
+            && !AWSEC2TemplateOptions.class.cast(options).getGroupIds().isEmpty()
             || super.userSpecifiedTheirOwnGroups(options);
    }
 
@@ -174,7 +174,7 @@ public class CreateKeyPairPlacementAndSecurityGroupsAsNeededAndReturnRunOptions
    protected void addSecurityGroups(String region, String group, Template template, RunInstancesOptions instanceOptions) {
       AWSEC2TemplateOptions awsTemplateOptions = AWSEC2TemplateOptions.class.cast(template.getOptions());
       AWSRunInstancesOptions awsInstanceOptions = AWSRunInstancesOptions.class.cast(instanceOptions);
-      if (awsTemplateOptions.getGroupIds().size() > 0)
+      if (!awsTemplateOptions.getGroupIds().isEmpty())
          awsInstanceOptions.withSecurityGroupIds(awsTemplateOptions.getGroupIds());
       String subnetId = awsTemplateOptions.getSubnetId();
       if (subnetId != null) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeServiceLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeServiceLiveTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeServiceLiveTest.java
index ba7431b..b16f2ca 100644
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeServiceLiveTest.java
+++ b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeServiceLiveTest.java
@@ -161,7 +161,7 @@ public class AWSEC2ComputeServiceLiveTest extends EC2ComputeServiceLiveTest {
                                                              .period(60)
                                                              .statistic(Statistics.AVERAGE)
                                                              .build());
-            assert datapoints.size() > 0 : instance;
+            assert !datapoints.isEmpty() : instance;
          } finally {
             monitoringApi.close();
          }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/features/SpotInstanceApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/features/SpotInstanceApiLiveTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/features/SpotInstanceApiLiveTest.java
index f7d2f87..c1201c9 100644
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/features/SpotInstanceApiLiveTest.java
+++ b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/features/SpotInstanceApiLiveTest.java
@@ -134,7 +134,7 @@ public class SpotInstanceApiLiveTest  extends BaseComputeServiceContextLiveTest
       for (String region : Region.DEFAULT_REGIONS) {
          Set<Spot> spots = client.getSpotInstanceApi().get().describeSpotPriceHistoryInRegion(region, from(new Date()));
          assertNotNull(spots);
-         assert spots.size() > 0;
+         assert !spots.isEmpty();
          for (Spot spot : spots) {
             assert spot.getSpotPrice() > 0 : spots;
             assertEquals(spot.getRegion(), region);
@@ -143,7 +143,7 @@ public class SpotInstanceApiLiveTest  extends BaseComputeServiceContextLiveTest
                               "Windows", "Windows (Amazon VPC)")).apply(spot.getProductDescription()) : spot;
             assert in(
                      ImmutableSet.of("c1.medium", "c1.xlarge", "cc1.4xlarge", "cg1.4xlarge", "cc2.8xlarge", "m1.large",
-                              "m1.small", "m1.medium", "m1.xlarge", "m2.2xlarge", "m2.4xlarge", "m2.xlarge", "m3.xlarge", 
+                              "m1.small", "m1.medium", "m1.xlarge", "m2.2xlarge", "m2.4xlarge", "m2.xlarge", "m3.xlarge",
                               "m3.2xlarge", "t1.micro", "cr1.8xlarge")).apply(
                      spot.getInstanceType()) : spot;
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/aws-s3/src/main/java/org/jclouds/aws/s3/binders/BindPartIdsAndETagsToRequest.java
----------------------------------------------------------------------
diff --git a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/binders/BindPartIdsAndETagsToRequest.java b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/binders/BindPartIdsAndETagsToRequest.java
index f6edf02..464c206 100644
--- a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/binders/BindPartIdsAndETagsToRequest.java
+++ b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/binders/BindPartIdsAndETagsToRequest.java
@@ -40,7 +40,7 @@ public class BindPartIdsAndETagsToRequest implements Binder {
       checkNotNull(request, "request");
 
       Map<Integer, String> map = (Map<Integer, String>) input;
-      checkArgument(map.size() != 0, "Please send parts");
+      checkArgument(!map.isEmpty(), "Please send parts");
       StringBuilder content = new StringBuilder();
       content.append("<CompleteMultipartUpload>");
       for (Entry<Integer, String> entry : map.entrySet()) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/aws-s3/src/main/java/org/jclouds/aws/s3/blobstore/strategy/internal/ParallelMultipartUploadStrategy.java
----------------------------------------------------------------------
diff --git a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/blobstore/strategy/internal/ParallelMultipartUploadStrategy.java b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/blobstore/strategy/internal/ParallelMultipartUploadStrategy.java
index ba6fa19..56b0a13 100644
--- a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/blobstore/strategy/internal/ParallelMultipartUploadStrategy.java
+++ b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/blobstore/strategy/internal/ParallelMultipartUploadStrategy.java
@@ -61,16 +61,16 @@ public class ParallelMultipartUploadStrategy implements AsyncMultipartUploadStra
    @Resource
    @Named(BlobStoreConstants.BLOBSTORE_LOGGER)
    protected Logger logger = Logger.NULL;
-   
+
    @VisibleForTesting
    static final int DEFAULT_PARALLEL_DEGREE = 4;
    @VisibleForTesting
    static final int DEFAULT_MIN_RETRIES = 5;
    @VisibleForTesting
    static final int DEFAULT_MAX_PERCENT_RETRIES = 10;
-   
+
    private final ListeningExecutorService ioExecutor;
-  
+
    @Inject(optional = true)
    @Named("jclouds.mpu.parallel.degree")
    @VisibleForTesting
@@ -92,7 +92,7 @@ public class ParallelMultipartUploadStrategy implements AsyncMultipartUploadStra
    @Inject(optional = true)
    @Named(Constants.PROPERTY_REQUEST_TIMEOUT)
    protected Long maxTime;
-   
+
    protected final AWSS3AsyncBlobStore ablobstore;
    protected final PayloadSlicer slicer;
 
@@ -103,13 +103,13 @@ public class ParallelMultipartUploadStrategy implements AsyncMultipartUploadStra
       this.slicer = checkNotNull(slicer, "slicer");
       this.ioExecutor = checkNotNull(ioExecutor, "ioExecutor");
    }
-   
-   protected void prepareUploadPart(final String container, final String key, 
-         final String uploadId, final Integer part, final Payload payload, 
-         final long offset, final long size, final SortedMap<Integer, String> etags, 
-         final BlockingQueue<Integer> activeParts, 
-         final Map<Integer, ListenableFuture<String>> futureParts, 
-         final AtomicInteger errors, final int maxRetries, final Map<Integer, Exception> errorMap, 
+
+   protected void prepareUploadPart(final String container, final String key,
+         final String uploadId, final Integer part, final Payload payload,
+         final long offset, final long size, final SortedMap<Integer, String> etags,
+         final BlockingQueue<Integer> activeParts,
+         final Map<Integer, ListenableFuture<String>> futureParts,
+         final AtomicInteger errors, final int maxRetries, final Map<Integer, Exception> errorMap,
          final Queue<Part> toRetry, final CountDownLatch latch) {
       if (errors.get() > maxRetries) {
          activeParts.remove(part); // remove part from the bounded-queue without blocking
@@ -126,16 +126,16 @@ public class ParallelMultipartUploadStrategy implements AsyncMultipartUploadStra
          public void run() {
             try {
                etags.put(part, futureETag.get());
-               logger.debug(String.format("async uploaded part %s of %s to container %s in %sms with uploadId %s", 
+               logger.debug(String.format("async uploaded part %s of %s to container %s in %sms with uploadId %s",
                      part, key, container, System.currentTimeMillis() - start, uploadId));
             } catch (CancellationException e) {
                errorMap.put(part, e);
-               String message = String.format("%s while uploading part %s - [%s,%s] to container %s with uploadId: %s running since %dms", 
+               String message = String.format("%s while uploading part %s - [%s,%s] to container %s with uploadId: %s running since %dms",
                      e.getMessage(), part, offset, size, container, uploadId, System.currentTimeMillis() - start);
                logger.debug(message);
             } catch (Exception e) {
                errorMap.put(part, e);
-               String message = String.format("%s while uploading part %s - [%s,%s] to container %s with uploadId: %s running since %dms", 
+               String message = String.format("%s while uploading part %s - [%s,%s] to container %s with uploadId: %s running since %dms",
                      e.getMessage(), part, offset, size, container, uploadId, System.currentTimeMillis() - start);
                logger.error(message, e);
                if (errors.incrementAndGet() <= maxRetries)
@@ -148,8 +148,8 @@ public class ParallelMultipartUploadStrategy implements AsyncMultipartUploadStra
          }
       }, ioExecutor);
       futureParts.put(part, futureETag);
-   }   
-   
+   }
+
    @Override
    public ListenableFuture<String> execute(final String container, final Blob blob, final PutOptions options) {
       return ioExecutor.submit(new Callable<String>() {
@@ -167,7 +167,7 @@ public class ParallelMultipartUploadStrategy implements AsyncMultipartUploadStra
                      AWSS3Client client = ablobstore
                            .getContext().unwrap(AWSS3ApiMetadata.CONTEXT_TOKEN).getApi();
                      String uploadId = null;
-                     final Map<Integer, ListenableFuture<String>> futureParts = 
+                     final Map<Integer, ListenableFuture<String>> futureParts =
                         new ConcurrentHashMap<Integer, ListenableFuture<String>>();
                      final Map<Integer, Exception> errorMap = Maps.newHashMap();
                      AtomicInteger errors = new AtomicInteger(0);
@@ -176,10 +176,10 @@ public class ParallelMultipartUploadStrategy implements AsyncMultipartUploadStra
                      try {
                         uploadId = client.initiateMultipartUpload(container,
                                  ObjectMetadataBuilder.create().key(key).build()); // TODO md5
-                        logger.debug(String.format("initiated multipart upload of %s to container %s" + 
-                              " with uploadId %s consisting from %s part (possible max. retries: %d)", 
+                        logger.debug(String.format("initiated multipart upload of %s to container %s" +
+                              " with uploadId %s consisting from %s part (possible max. retries: %d)",
                               key, container, uploadId, effectiveParts, maxRetries));
-                        // we need a bounded-blocking queue to control the amount of parallel jobs 
+                        // we need a bounded-blocking queue to control the amount of parallel jobs
                         ArrayBlockingQueue<Integer> activeParts = new ArrayBlockingQueue<Integer>(parallelDegree);
                         Queue<Part> toRetry = new ConcurrentLinkedQueue<Part>();
                         SortedMap<Integer, String> etags = new ConcurrentSkipListMap<Integer, String>();
@@ -188,35 +188,35 @@ public class ParallelMultipartUploadStrategy implements AsyncMultipartUploadStra
                         while ((part = algorithm.getNextPart()) <= parts) {
                            Integer partKey = Integer.valueOf(part);
                            activeParts.put(partKey);
-                           prepareUploadPart(container, key, uploadId, partKey, payload, 
-                                 algorithm.getNextChunkOffset(), chunkSize, etags, 
+                           prepareUploadPart(container, key, uploadId, partKey, payload,
+                                 algorithm.getNextChunkOffset(), chunkSize, etags,
                                  activeParts, futureParts, errors, maxRetries, errorMap, toRetry, latch);
                         }
                         if (remaining > 0) {
                            Integer partKey = Integer.valueOf(part);
                            activeParts.put(partKey);
-                           prepareUploadPart(container, key, uploadId, partKey, payload, 
-                                 algorithm.getNextChunkOffset(), remaining, etags, 
+                           prepareUploadPart(container, key, uploadId, partKey, payload,
+                                 algorithm.getNextChunkOffset(), remaining, etags,
                                  activeParts, futureParts, errors, maxRetries, errorMap, toRetry, latch);
                         }
                         latch.await();
                         // handling retries
-                        while (errors.get() <= maxRetries && toRetry.size() > 0) {
+                        while (errors.get() <= maxRetries && !toRetry.isEmpty()) {
                            int atOnce = Math.min(Math.min(toRetry.size(), errors.get()), parallelDegree);
                            CountDownLatch retryLatch = new CountDownLatch(atOnce);
                            for (int i = 0; i < atOnce; i++) {
                               Part failedPart = toRetry.poll();
                               Integer partKey = Integer.valueOf(failedPart.getPart());
                               activeParts.put(partKey);
-                              prepareUploadPart(container, key, uploadId, partKey, payload, 
-                                    failedPart.getOffset(), failedPart.getSize(), etags, 
+                              prepareUploadPart(container, key, uploadId, partKey, payload,
+                                    failedPart.getOffset(), failedPart.getSize(), etags,
                                     activeParts, futureParts, errors, maxRetries, errorMap, toRetry, retryLatch);
                            }
                            retryLatch.await();
                         }
                         if (errors.get() > maxRetries) {
                            throw new BlobRuntimeException(String.format(
-                                 "Too many failed parts: %s while multipart upload of %s to container %s with uploadId %s", 
+                                 "Too many failed parts: %s while multipart upload of %s to container %s with uploadId %s",
                                  errors.get(), key, container, uploadId));
                         }
                         String eTag = client.completeMultipartUpload(container, key, uploadId, etags);
@@ -237,23 +237,23 @@ public class ParallelMultipartUploadStrategy implements AsyncMultipartUploadStra
                         throw rtex;
                      }
                   } else {
-                     // Issue 936: don't just call putBlob, as that will see options=multiPart and 
+                     // Issue 936: don't just call putBlob, as that will see options=multiPart and
                      // recursively call this execute method again; instead mark as not multipart
                      // because it can all fit in one go.
                      PutOptions nonMultipartOptions = PutOptions.Builder.multipart(false);
                      ListenableFuture<String> futureETag = ablobstore.putBlob(container, blob, nonMultipartOptions);
-                     return maxTime != null ? 
+                     return maxTime != null ?
                            futureETag.get(maxTime, TimeUnit.SECONDS) : futureETag.get();
                   }
                }
             });
    }
-   
+
    static class Part {
       private int part;
       private long offset;
       private long size;
-      
+
       Part(int part, long offset, long size) {
          this.part = part;
          this.offset = offset;
@@ -282,6 +282,6 @@ public class ParallelMultipartUploadStrategy implements AsyncMultipartUploadStra
 
       public void setSize(long size) {
          this.size = size;
-      }     
+      }
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/azureblob/src/main/java/org/jclouds/azureblob/handlers/ParseAzureBlobErrorFromXmlContent.java
----------------------------------------------------------------------
diff --git a/providers/azureblob/src/main/java/org/jclouds/azureblob/handlers/ParseAzureBlobErrorFromXmlContent.java b/providers/azureblob/src/main/java/org/jclouds/azureblob/handlers/ParseAzureBlobErrorFromXmlContent.java
index ff8ae7c..e6c20ae 100644
--- a/providers/azureblob/src/main/java/org/jclouds/azureblob/handlers/ParseAzureBlobErrorFromXmlContent.java
+++ b/providers/azureblob/src/main/java/org/jclouds/azureblob/handlers/ParseAzureBlobErrorFromXmlContent.java
@@ -51,7 +51,7 @@ public class ParseAzureBlobErrorFromXmlContent extends ParseAzureStorageErrorFro
                List<String> parts = Lists.newArrayList(Splitter.on('/').split(
                         command.getCurrentRequest().getEndpoint().getPath()));
                parts.remove("");
-               if (parts.size() > 0) {
+               if (!parts.isEmpty()) {
                   String container = parts.remove(0);
                   String query = command.getCurrentRequest().getEndpoint().getQuery();
                   if (query != null && query.indexOf("container") != -1) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/GeoRegionGroupApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/GeoRegionGroupApiLiveTest.java b/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/GeoRegionGroupApiLiveTest.java
index 1965d3b..5ce32dc 100644
--- a/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/GeoRegionGroupApiLiveTest.java
+++ b/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/GeoRegionGroupApiLiveTest.java
@@ -47,8 +47,8 @@ public class GeoRegionGroupApiLiveTest extends BaseDynECTApiLiveTest {
 
    static void checkGeoRegionGroup(GeoRegionGroup group) {
       assertNotNull(group.getName(), "Name cannot be null " + group);
-      assertTrue(group.getCountries().size() > 0, "countries must be assigned " + group);
-      assertTrue(group.getRecordSets().size() > 0, "RecordSets must be assigned " + group);
+      assertTrue(!group.getCountries().isEmpty(), "countries must be assigned " + group);
+      assertTrue(!group.getRecordSets().isEmpty(), "RecordSets must be assigned " + group);
       for (RecordSet recordSet : group.getRecordSets())
          checkRecordSet(recordSet);
    }
@@ -63,7 +63,7 @@ public class GeoRegionGroupApiLiveTest extends BaseDynECTApiLiveTest {
    static void checkValue(Value value) {
       assertNotNull(value.getLabel(), "Label cannot be null " + value);
       assertNotNull(value.getWeight(), "Weight cannot be null " + value);
-      assertTrue(value.getRData().size() > 0, "RData entries should be present: " + value);
+      assertTrue(!value.getRData().isEmpty(), "RData entries should be present: " + value);
    }
 
    protected GeoRegionGroupApi api(String serviceName) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/GeoServiceApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/GeoServiceApiLiveTest.java b/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/GeoServiceApiLiveTest.java
index 6ad9c55..2c2b212 100644
--- a/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/GeoServiceApiLiveTest.java
+++ b/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/GeoServiceApiLiveTest.java
@@ -43,8 +43,8 @@ public class GeoServiceApiLiveTest extends BaseDynECTApiLiveTest {
    static void checkGeoService(GeoService service) {
       assertNotNull(service.getName(), "Name cannot be null " + service);
       assertTrue(service.getTTL() >= 0, "TTL cannot be negative " + service);
-      assertTrue(service.getNodes().size() > 0, "Nodes must be assigned " + service);
-      assertTrue(service.getGroups().size() > 0, "Groups must be assigned " + service);
+      assertTrue(!service.getNodes().isEmpty(), "Nodes must be assigned " + service);
+      assertTrue(!service.getGroups().isEmpty(), "Groups must be assigned " + service);
       for (GeoRegionGroup group : service.getGroups())
          GeoRegionGroupApiLiveTest.checkGeoRegionGroup(group);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/RecordApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/RecordApiLiveTest.java b/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/RecordApiLiveTest.java
index fae9445..de75164 100644
--- a/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/RecordApiLiveTest.java
+++ b/providers/dynect/src/test/java/org/jclouds/dynect/v3/features/RecordApiLiveTest.java
@@ -62,7 +62,7 @@ public class RecordApiLiveTest extends BaseDynECTApiLiveTest {
 
    private void checkRecord(Record<? extends Map<String, Object>> record) {
       checkRecordId(record);
-      assertTrue(record.getRData().size() > 0, "RData entries should be present for cannot be zero for Record: "
+      assertTrue(!record.getRData().isEmpty(), "RData entries should be present for cannot be zero for Record: "
             + record);
       checkNotNull(record.getTTL(), "TTL cannot be null for RecordId: %s", record);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/glesys/src/main/java/org/jclouds/glesys/compute/GleSYSComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/providers/glesys/src/main/java/org/jclouds/glesys/compute/GleSYSComputeServiceAdapter.java b/providers/glesys/src/main/java/org/jclouds/glesys/compute/GleSYSComputeServiceAdapter.java
index 3111c26..3e014d5 100644
--- a/providers/glesys/src/main/java/org/jclouds/glesys/compute/GleSYSComputeServiceAdapter.java
+++ b/providers/glesys/src/main/java/org/jclouds/glesys/compute/GleSYSComputeServiceAdapter.java
@@ -112,7 +112,7 @@ public class GleSYSComputeServiceAdapter implements ComputeServiceAdapter<Server
       template.getOptions().userMetadata(ComputeServiceConstants.NODE_GROUP_KEY, group);
 
       Map<String, String> md = metadataAndTagsAsCommaDelimitedValue(template.getOptions());
-      if (md.size() > 0) {
+      if (!md.isEmpty()) {
          String description = Joiner.on('\n').withKeyValueSeparator("=").join(md);
          // TODO: get glesys to stop stripping out equals and commas!
          createServerOptions.description(base16().lowerCase().encode(description.getBytes(UTF_8)));
@@ -127,7 +127,7 @@ public class GleSYSComputeServiceAdapter implements ComputeServiceAdapter<Server
       builder.transferGB(templateOptions.getTransferGB());
       ServerSpec spec = builder.build();
 
-      
+
       // use random root password unless one was provided via template options
       String password = templateOptions.hasRootPassword() ? templateOptions.getRootPassword() : getRandomPassword();
 
@@ -168,7 +168,7 @@ public class GleSYSComputeServiceAdapter implements ComputeServiceAdapter<Server
                            templatesSupportedBuilder.add(template.getName());
                      }
                      ImmutableSet<String> templatesSupported = templatesSupportedBuilder.build();
-                     if (templatesSupported.size() > 0)
+                     if (!templatesSupported.isEmpty())
                         hardwareToReturn.add(new HardwareBuilder()
                               .ids(String.format(
                                     "datacenter(%s)platform(%s)cpuCores(%d)memorySizeMB(%d)diskSizeGB(%d)", datacenter,
@@ -187,7 +187,7 @@ public class GleSYSComputeServiceAdapter implements ComputeServiceAdapter<Server
    public Set<OSTemplate> listImages() {
       return api.getServerApi().listTemplates().toSet();
    }
-   
+
    // cheat until we have a getTemplate command
    @Override
    public OSTemplate getImage(final String id) {
@@ -197,10 +197,10 @@ public class GleSYSComputeServiceAdapter implements ComputeServiceAdapter<Server
          public boolean apply(OSTemplate input) {
             return input.getName().equals(id);
          }
-         
+
       }, null);
    }
-   
+
    @Override
    public Iterable<ServerDetails> listNodes() {
       return api.getServerApi().list().transform(new Function<Server, ServerDetails>() {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/glesys/src/test/java/org/jclouds/glesys/features/ArchiveApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/glesys/src/test/java/org/jclouds/glesys/features/ArchiveApiLiveTest.java b/providers/glesys/src/test/java/org/jclouds/glesys/features/ArchiveApiLiveTest.java
index b62ebf0..86ef85e 100644
--- a/providers/glesys/src/test/java/org/jclouds/glesys/features/ArchiveApiLiveTest.java
+++ b/providers/glesys/src/test/java/org/jclouds/glesys/features/ArchiveApiLiveTest.java
@@ -40,7 +40,7 @@ public class ArchiveApiLiveTest extends BaseGleSYSApiLiveTest {
    @BeforeClass(groups = { "integration", "live" })
    public void setup() {
       super.setup();
-      
+
       archiveApi = api.getArchiveApi();
       archiveUser = identity.toLowerCase() + "_test9";
       archiveCounter = retry(new Predicate<Integer>() {
@@ -49,7 +49,7 @@ public class ArchiveApiLiveTest extends BaseGleSYSApiLiveTest {
          }
       }, 30, 1, SECONDS);
    }
-   
+
    @AfterClass(groups = { "integration", "live" })
    protected void tearDown() {
       int before = archiveApi.list().size();
@@ -68,22 +68,22 @@ public class ArchiveApiLiveTest extends BaseGleSYSApiLiveTest {
       ArchiveAllowedArguments args = archiveApi.getAllowedArguments();
       assertNotNull(args);
       assertNotNull(args.getSizes());
-      assertTrue(args.getSizes().size() > 0);
-      
+      assertTrue(!args.getSizes().isEmpty());
+
       for (int size : args.getSizes()) {
          assertTrue(size > 0);
       }
    }
-   
+
    @Test
    public void testCreateArchive() throws Exception {
       try {
          archiveApi.delete(archiveUser);
       } catch (Exception ex) {
       }
-      
+
       int before = archiveApi.list().size();
-      
+
       archiveApi.createWithCredentialsAndSize(archiveUser, "password", 10);
 
       assertTrue(archiveCounter.apply(before + 1));
@@ -97,7 +97,7 @@ public class ArchiveApiLiveTest extends BaseGleSYSApiLiveTest {
 
    @Test(dependsOnMethods = "testCreateArchive")
    public void testChangePassword() throws Exception {
-      archiveApi.changePassword(archiveUser, "newpassword");      
+      archiveApi.changePassword(archiveUser, "newpassword");
       // TODO assert something useful!
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/glesys/src/test/java/org/jclouds/glesys/features/ServerApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/glesys/src/test/java/org/jclouds/glesys/features/ServerApiLiveTest.java b/providers/glesys/src/test/java/org/jclouds/glesys/features/ServerApiLiveTest.java
index de22cbc..0dd16a3 100644
--- a/providers/glesys/src/test/java/org/jclouds/glesys/features/ServerApiLiveTest.java
+++ b/providers/glesys/src/test/java/org/jclouds/glesys/features/ServerApiLiveTest.java
@@ -53,7 +53,7 @@ import com.google.common.collect.FluentIterable;
 @Test(groups = "live", testName = "ServerApiLiveTest", singleThreaded = true)
 public class ServerApiLiveTest extends BaseGleSYSApiWithAServerLiveTest {
    public static final String testHostName2 = "jclouds-test2";
-   
+
    @BeforeClass(groups = { "integration", "live" })
    @Override
    public void setup() {
@@ -78,14 +78,14 @@ public class ServerApiLiveTest extends BaseGleSYSApiWithAServerLiveTest {
    public void makeSureServerIsRunning() throws Exception {
       serverStatusChecker.apply(Server.State.RUNNING);
    }
-   
+
    @Test
    public void testAllowedArguments() throws Exception {
       Map<String, AllowedArgumentsForCreateServer> templates = serverApi.getAllowedArgumentsForCreateByPlatform();
-      
+
       assertTrue(templates.containsKey("OpenVZ"));
       assertTrue(templates.containsKey("Xen"));
-      
+
       checkAllowedArguments(templates.get("OpenVZ"));
       checkAllowedArguments(templates.get("Xen"));
    }
@@ -93,15 +93,15 @@ public class ServerApiLiveTest extends BaseGleSYSApiWithAServerLiveTest {
    private void checkAllowedArguments(AllowedArgumentsForCreateServer t) {
       assertNotNull(t);
 
-      assert t.getDataCenters().size() > 0 : t;
-      assert t.getCpuCoreOptions().getAllowedUnits().size() > 0 : t;
-      assert t.getDiskSizesInGB().getAllowedUnits().size() > 0 : t;
-      assert t.getMemorySizesInMB().getAllowedUnits().size() > 0 : t;
-      assert t.getTemplateNames().size() > 0 : t;
-      assert t.getTransfersInGB().getAllowedUnits().size() > 0 : t;
-      assert t.getTransfersInGB().getAllowedUnits().size() > 0 : t;
+      assert !t.getDataCenters().isEmpty() : t;
+      assert !t.getCpuCoreOptions().getAllowedUnits().isEmpty() : t;
+      assert !t.getDiskSizesInGB().getAllowedUnits().isEmpty() : t;
+      assert !t.getMemorySizesInMB().getAllowedUnits().isEmpty() : t;
+      assert !t.getTemplateNames().isEmpty() : t;
+      assert !t.getTransfersInGB().getAllowedUnits().isEmpty() : t;
+      assert !t.getTransfersInGB().getAllowedUnits().isEmpty() : t;
    }
-   
+
    public void testListTemplates() throws Exception {
       FluentIterable<OSTemplate> oSTemplates = serverApi.listTemplates();
 
@@ -109,7 +109,7 @@ public class ServerApiLiveTest extends BaseGleSYSApiWithAServerLiveTest {
          checkTemplate(oSTemplate);
       }
    }
-   
+
    private void checkTemplate(OSTemplate t) {
       assertNotNull(t);
       assertNotNull(t.getName());
@@ -119,11 +119,11 @@ public class ServerApiLiveTest extends BaseGleSYSApiWithAServerLiveTest {
       assert t.getMinDiskSize() > 0 : t;
       assert t.getMinMemSize() > 0 : t;
     }
-   
+
    public void testListServers() throws Exception {
       FluentIterable<Server> response = serverApi.list();
       assertNotNull(response);
-      assertTrue(response.size() > 0);
+      assertTrue(!response.isEmpty());
 
       for (Server server : response) {
          ServerDetails newDetails = serverApi.get(server.getId());
@@ -172,7 +172,7 @@ public class ServerApiLiveTest extends BaseGleSYSApiWithAServerLiveTest {
       assertTrue(serverStatusChecker.apply(Server.State.RUNNING));
 
       serverApi.reboot(serverId);
-      
+
       assertTrue(serverStatusChecker.apply(Server.State.RUNNING));
    }
 
@@ -240,10 +240,10 @@ public class ServerApiLiveTest extends BaseGleSYSApiWithAServerLiveTest {
       assertNotNull(testServer2.getId());
       assertEquals(testServer2.getHostname(), "jclouds-test2");
       assertTrue(testServer2.getIps().isEmpty());
-      
+
       testServerId2 = testServer2.getId();
 
-      Predicate<State> cloneChecker = statusChecker(serverApi, testServerId2); 
+      Predicate<State> cloneChecker = statusChecker(serverApi, testServerId2);
       assertTrue(cloneChecker.apply(Server.State.STOPPED));
 
       serverApi.start(testServer2.getId());
@@ -279,15 +279,15 @@ public class ServerApiLiveTest extends BaseGleSYSApiWithAServerLiveTest {
       assertNotNull(status.getState());
       assertNotNull(status.getUptime());
 
-      
+
       for (ResourceStatus usage : new ResourceStatus[] { status.getCpu(), status.getDisk(), status.getMemory() }) {
          assertNotNull(usage);
          assert usage.getMax() >= 0.0 : status;
          assert usage.getUsage() >= 0.0 : status;
-         
+
          assertNotNull(usage.getUnit());
       }
-      
+
       assertNotNull(status.getUptime());
       assert status.getUptime().getCurrent() > 0 : status;
       assertNotNull(status.getUptime().getUnit());

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/gogrid/src/main/java/org/jclouds/gogrid/functions/ParseCredentialsFromJsonResponse.java
----------------------------------------------------------------------
diff --git a/providers/gogrid/src/main/java/org/jclouds/gogrid/functions/ParseCredentialsFromJsonResponse.java b/providers/gogrid/src/main/java/org/jclouds/gogrid/functions/ParseCredentialsFromJsonResponse.java
index 12970d3..a9c56c9 100644
--- a/providers/gogrid/src/main/java/org/jclouds/gogrid/functions/ParseCredentialsFromJsonResponse.java
+++ b/providers/gogrid/src/main/java/org/jclouds/gogrid/functions/ParseCredentialsFromJsonResponse.java
@@ -47,6 +47,6 @@ public class ParseCredentialsFromJsonResponse implements
       checkState(!(returnVal.size() > 1),
             "expecting only 1 credential in response, but had more: "
                   + returnVal.keySet());
-      return (returnVal.size() > 0) ? Iterables.getOnlyElement(returnVal.values()) : null;
+      return (!returnVal.isEmpty()) ? Iterables.getOnlyElement(returnVal.values()) : null;
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/strategy/SoftLayerComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/strategy/SoftLayerComputeServiceAdapter.java b/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/strategy/SoftLayerComputeServiceAdapter.java
index 7ef331b..e2a15b5 100644
--- a/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/strategy/SoftLayerComputeServiceAdapter.java
+++ b/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/strategy/SoftLayerComputeServiceAdapter.java
@@ -465,7 +465,7 @@ public class SoftLayerComputeServiceAdapter implements
          boolean hasBackendIp = newGuest.getPrimaryBackendIpAddress() != null;
          boolean hasPrimaryIp = newGuest.getPrimaryIpAddress() != null;
          boolean hasPasswords = newGuest.getOperatingSystem() != null
-               && newGuest.getOperatingSystem().getPasswords().size() > 0;
+               && !newGuest.getOperatingSystem().getPasswords().isEmpty();
 
          return hasBackendIp && hasPrimaryIp && hasPasswords;
       }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/ultradns-ws/src/test/java/org/jclouds/ultradns/ws/features/DirectionalGroupApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/ultradns-ws/src/test/java/org/jclouds/ultradns/ws/features/DirectionalGroupApiLiveTest.java b/providers/ultradns-ws/src/test/java/org/jclouds/ultradns/ws/features/DirectionalGroupApiLiveTest.java
index 1cbb341..e3a6b78 100644
--- a/providers/ultradns-ws/src/test/java/org/jclouds/ultradns/ws/features/DirectionalGroupApiLiveTest.java
+++ b/providers/ultradns-ws/src/test/java/org/jclouds/ultradns/ws/features/DirectionalGroupApiLiveTest.java
@@ -67,7 +67,7 @@ public class DirectionalGroupApiLiveTest extends BaseUltraDNSWSApiLiveTest {
       for (AccountLevelGroup group : api().listAccountLevelGroups()) {
          DirectionalGroup withRegions = api().get(group.getId());
          assertEquals(withRegions.getName(), group.getName());
-         assertTrue(withRegions.size() > 0);
+         assertTrue(!withRegions.isEmpty());
       }
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/InitScript.java
----------------------------------------------------------------------
diff --git a/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/InitScript.java b/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/InitScript.java
index 3d47b54..c8d7d2a 100644
--- a/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/InitScript.java
+++ b/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/InitScript.java
@@ -184,12 +184,12 @@ public class InitScript extends ForwardingObject implements Statement, AcceptsSt
       this.exports = ImmutableMap.<String, String> copyOf(checkNotNull(exports, "exports"));
       this.init = checkNotNull(init, "init");
       this.run = checkNotNull(run, "run");
-      checkArgument(run.delegate().size() > 0, "you must specify at least one statement to run");
+      checkArgument(!run.delegate().isEmpty(), "you must specify at least one statement to run");
       this.delegate = makeInitScriptStatement(instanceName, instanceHome, logDir, exports, init, run);
    }
 
    /**
-    * 
+    *
     * @param exports keys are the variables to export in UPPER_UNDERSCORE case format
     */
    public static ScriptBuilder makeInitScriptStatement(String instanceName, String instanceHome, String logDir,
@@ -244,7 +244,7 @@ public class InitScript extends ForwardingObject implements Statement, AcceptsSt
    }
 
    /**
-    * 
+    *
     * @return what will be bound to the INSTANCE_NAME variable, and uniquely
     *         identifies the process
     */
@@ -253,13 +253,13 @@ public class InitScript extends ForwardingObject implements Statement, AcceptsSt
    }
 
    /**
-    * default {@code /tmp/$INSTANCE_NAME} 
+    * default {@code /tmp/$INSTANCE_NAME}
     * <br/>
     * <h3>note</h3> The parent directory
     * should be set with unix sticky-bit or otherwise made available to all
     * users. Otherwise, new instances by other users may fail due to not being
     * able to create a directory.  This is why the default is set to {@code /tmp}
-    * 
+    *
     * @return what will be bound to the INSTANCE_HOME variable, and represents
     *         the working directory of the instance
     */
@@ -269,7 +269,7 @@ public class InitScript extends ForwardingObject implements Statement, AcceptsSt
 
    /**
     * default {@code $INSTANCE_HOME}
-    * 
+    *
     * @return what will be bound to the LOG_DIR variable, and represents where
     *         stdout and stderr.logs are written.
     */
@@ -278,7 +278,7 @@ public class InitScript extends ForwardingObject implements Statement, AcceptsSt
    }
 
    /**
-    * 
+    *
     * @return statements that will be executed upon the init command
     */
    public StatementList getInitStatement() {
@@ -286,7 +286,7 @@ public class InitScript extends ForwardingObject implements Statement, AcceptsSt
    }
 
    /**
-    * 
+    *
     * @return statements that will be executed upon the run or start commands
     */
    public StatementList getRunStatement() {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/ScriptBuilder.java
----------------------------------------------------------------------
diff --git a/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/ScriptBuilder.java b/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/ScriptBuilder.java
index a97f685..8f4552d 100644
--- a/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/ScriptBuilder.java
+++ b/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/ScriptBuilder.java
@@ -100,7 +100,7 @@ public class ScriptBuilder implements Statement, AcceptsStatementVisitor {
     * <li>variable exports</li>
     * <li>case/switch</li>
     * </ol>
-    * 
+    *
     * @param osFamily
     *           whether to write a cmd or bash script.
     */
@@ -130,7 +130,7 @@ public class ScriptBuilder implements Statement, AcceptsStatementVisitor {
    }
 
    public static void writeFunctions(Map<String, String> functionsToWrite, OsFamily osFamily, StringBuilder builder) {
-      if (functionsToWrite.size() > 0) {
+      if (!functionsToWrite.isEmpty()) {
          builder.append(ShellToken.BEGIN_FUNCTIONS.to(osFamily));
          for (String function : functionsToWrite.values()) {
             builder.append(Utils.replaceTokens(function, ShellToken.tokenValueMap(osFamily)));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/domain/AppendFile.java
----------------------------------------------------------------------
diff --git a/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/domain/AppendFile.java b/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/domain/AppendFile.java
index 2476b78..d4efcfd 100644
--- a/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/domain/AppendFile.java
+++ b/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/domain/AppendFile.java
@@ -90,7 +90,7 @@ public class AppendFile implements Statement {
       this.path = checkNotNull(path, "PATH");
       this.lines = checkNotNull(lines, "lines");
       this.delimiter = checkNotNull(delimiter, "delimiter");
-      checkState(Iterables.size(lines) > 0, "you must pass something to execute");
+      checkState(!Iterables.isEmpty(lines), "you must pass something to execute");
       this.expandVariables = expandVariables;
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/statements/login/UserAdd.java
----------------------------------------------------------------------
diff --git a/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/statements/login/UserAdd.java b/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/statements/login/UserAdd.java
index dc2713f..370f76e 100644
--- a/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/statements/login/UserAdd.java
+++ b/scriptbuilder/src/main/java/org/jclouds/scriptbuilder/statements/login/UserAdd.java
@@ -72,7 +72,7 @@ public class UserAdd implements Statement {
          this.cryptFunction = cryptFunction;
          return this;
       }
-      
+
       /**
        * See --home in `man useradd`.
        */
@@ -164,7 +164,7 @@ public class UserAdd implements Statement {
       this.shell = checkNotNull(shell, "shell");
       this.fullName = fullName;
    }
-   
+
    private final Function<String, String> cryptFunction;
    private final String home;
    private final String defaultHome;
@@ -201,14 +201,14 @@ public class UserAdd implements Statement {
       }
 
       userAddOptions.put("-s", shell);
-      if (groups.size() > 0) {
+      if (!groups.isEmpty()) {
          for (String group : groups)
             statements.add(Statements.exec("groupadd -f " + group));
 
          List<String> groups = Lists.newArrayList(this.groups);
          String primaryGroup = groups.remove(0);
          userAddOptions.put("-g", primaryGroup);
-         if (groups.size() > 0)
+         if (!groups.isEmpty())
             userAddOptions.put("-G", Joiner.on(',').join(groups));
 
       }
@@ -226,9 +226,9 @@ public class UserAdd implements Statement {
 
       statements.add(Statements.exec(String.format("useradd %s %s", options, login)));
 
-      if (authorizeRSAPublicKeys.size() > 0 || installRSAPrivateKey != null) {
+      if (!authorizeRSAPublicKeys.isEmpty() || installRSAPrivateKey != null) {
          String sshDir = homeDir + "{fs}.ssh";
-         if (authorizeRSAPublicKeys.size() > 0)
+         if (!authorizeRSAPublicKeys.isEmpty())
             statements.add(new AuthorizeRSAPublicKeys(sshDir, authorizeRSAPublicKeys));
          if (installRSAPrivateKey != null)
             statements.add(new InstallRSAPrivateKey(sshDir, installRSAPrivateKey));


[4/4] git commit: Prefer isEmpty() for collections rather than size()

Posted by jd...@apache.org.
Prefer isEmpty() for collections rather than size()


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/e711275f
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/e711275f
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/e711275f

Branch: refs/heads/master
Commit: e711275fb132c8c2f0155400de01275653ad70e7
Parents: 192785d
Author: Jeremy Daggett <je...@rackspace.com>
Authored: Wed Aug 13 13:16:43 2014 -0700
Committer: Jeremy Daggett <jd...@apache.org>
Committed: Wed Aug 20 11:07:48 2014 -0700

----------------------------------------------------------------------
 .../binders/BindUserMetadataToHeaders.java      | 10 +--
 .../internal/BYONComputeServiceAdapter.java     |  6 +-
 .../options/CreateServerOptions.java            | 12 ++--
 .../CloudServersClientLiveTest.java             |  4 +-
 .../cloudsigma/functions/BaseDriveToMap.java    |  6 +-
 ...yValuesDelimitedByBlankLinesToDriveInfo.java |  2 +-
 ...aluesDelimitedByBlankLinesToProfileInfo.java |  2 +-
 ...ValuesDelimitedByBlankLinesToServerInfo.java |  2 +-
 ...luesDelimitedByBlankLinesToStaticIPInfo.java |  2 +-
 ...eyValuesDelimitedByBlankLinesToVLANInfo.java |  2 +-
 ...ValuesDelimitedByBlankLinesToListOfMaps.java |  2 +-
 .../cloudsigma/functions/MapToDriveInfo.java    |  2 +-
 .../cloudsigma/functions/MapToProfileInfo.java  |  4 +-
 .../cloudsigma/functions/MapToServerInfo.java   |  2 +-
 .../cloudsigma/functions/MapToStaticIPInfo.java |  4 +-
 .../cloudsigma/functions/MapToVLANInfo.java     |  4 +-
 .../cloudsigma/functions/ServerToMap.java       |  4 +-
 .../cloudsigma/predicates/DriveClaimed.java     |  2 +-
 ...tSecurityGroupPairsToIndexedQueryParams.java |  2 +-
 .../BindCIDRsToCommaDelimitedQueryParam.java    |  2 +-
 .../BindIdListToCommaDelimitedQueryParam.java   |  2 +-
 .../CloudStackComputeServiceAdapter.java        | 12 ++--
 .../functions/CreateFirewallRulesForIP.java     |  4 +-
 .../CreatePortForwardingRulesForIP.java         |  2 +-
 .../functions/CreateSecurityGroupIfNeeded.java  |  2 +-
 .../predicates/CorrectHypervisorForZone.java    |  2 +-
 .../compute/CloudStackExperimentLiveTest.java   |  4 +-
 .../cloudstack/features/AddressApiLiveTest.java |  2 +-
 .../features/DomainUserApiLiveTest.java         |  2 +-
 .../features/FirewallApiLiveTest.java           |  4 +-
 .../features/GlobalHostApiLiveTest.java         |  4 +-
 .../features/GlobalStoragePoolApiLiveTest.java  |  2 +-
 .../features/GlobalUserApiLiveTest.java         |  2 +-
 .../features/GlobalVlanApiLiveTest.java         |  8 +--
 .../features/VirtualMachineApiLiveTest.java     |  4 +-
 .../cloudwatch/features/AlarmApiLiveTest.java   |  6 +-
 .../cloudwatch/features/MetricApiLiveTest.java  |  8 +--
 .../BindIpPermissionsToIndexedFormParams.java   |  2 +-
 .../jclouds/ec2/compute/EC2ComputeService.java  | 18 +++---
 .../extensions/EC2SecurityGroupExtension.java   | 48 +++++++-------
 .../ec2/compute/options/EC2TemplateOptions.java | 22 +++----
 ...curityGroupsAsNeededAndReturnRunOptions.java |  4 +-
 .../EC2CreateNodesInGroupThenAddToSet.java      |  6 +-
 .../org/jclouds/ec2/domain/SecurityGroup.java   |  2 +-
 .../jclouds/ec2/predicates/VolumeAttached.java  |  4 +-
 .../jclouds/ec2/predicates/VolumeDetached.java  |  2 +-
 .../DescribeAvailabilityZonesInRegion.java      |  2 +-
 .../org/jclouds/ec2/util/IpPermissions.java     |  2 +-
 .../org/jclouds/ec2/EBSBootEC2ApiLiveTest.java  |  6 +-
 .../elasticstack/functions/BaseDriveToMap.java  |  4 +-
 .../functions/CreateDriveRequestToMap.java      |  2 +-
 ...yValuesDelimitedByBlankLinesToDriveInfo.java |  2 +-
 ...ValuesDelimitedByBlankLinesToServerInfo.java |  2 +-
 ...ValuesDelimitedByBlankLinesToListOfMaps.java |  2 +-
 .../elasticstack/functions/MapToDriveInfo.java  |  2 +-
 .../elasticstack/functions/MapToServerInfo.java |  2 +-
 .../elasticstack/functions/ServerToMap.java     |  4 +-
 .../elasticstack/predicates/DriveClaimed.java   |  2 +-
 ...ationIdToURIFromAccessForTypeAndVersion.java |  7 ++-
 .../v2_0/compute/NovaComputeServiceAdapter.java |  6 +-
 .../extensions/NovaSecurityGroupExtension.java  |  8 +--
 .../nova/v2_0/domain/SecurityGroup.java         | 28 ++++-----
 .../nova/v2_0/options/CreateServerOptions.java  | 12 ++--
 .../v1/domain/LoadBalancer.java                 | 12 ++--
 .../v1/functions/ParseAlgorithms.java           | 10 +--
 .../v1/functions/ParseLoadBalancer.java         |  6 +-
 .../v1/functions/ParseLoadBalancers.java        |  2 +-
 .../v1/functions/ParseNestedBoolean.java        |  6 +-
 .../v1/functions/ParseNestedString.java         |  2 +-
 .../v1/functions/ParseNode.java                 | 10 +--
 .../v1/functions/ParseSessionPersistence.java   |  6 +-
 .../v1/features/LoadBalancerApiLiveTest.java    |  4 +-
 .../v1/features/NodeApiLiveTest.java            |  2 +-
 .../route53/features/HostedZoneApiLiveTest.java |  4 +-
 .../jclouds/s3/config/S3RestClientModule.java   |  2 +-
 .../jclouds/s3/internal/StubS3AsyncClient.java  |  5 +-
 .../BindAttributeNamesToIndexedFormParams.java  |  2 +-
 .../jclouds/sqs/options/CreateQueueOptions.java | 10 +--
 .../sqs/options/ReceiveMessageOptions.java      | 20 +++---
 .../aws/binders/BindMapToIndexedFormParams.java |  2 +-
 .../binders/BindTableToIndexedFormParams.java   |  2 +-
 .../java/org/jclouds/aws/util/AWSUtils.java     |  6 +-
 .../ParallelMultipartUploadStrategy.java        |  2 +-
 ...stantiateVAppTemplateParamsToXmlPayload.java |  4 +-
 .../compute/functions/HardwareForVApp.java      |  2 +-
 ...EnvelopeOrThrowIllegalArgumentException.java |  2 +-
 ...edIntoNameThenCustomizeDeployAndPowerOn.java | 18 +++---
 .../strategy/VCloudComputeServiceAdapter.java   | 10 +--
 .../vcloud/compute/util/VCloudComputeUtils.java | 10 +--
 .../vcloud/config/VCloudHttpApiModule.java      |  4 +-
 .../vcloud/domain/network/FirewallService.java  |  6 +-
 .../jclouds/vcloud/domain/network/IpScope.java  | 18 +++---
 .../vcloud/domain/network/NatService.java       | 10 +--
 .../domain/network/internal/OrgNetworkImpl.java |  4 +-
 .../functions/DefaultNetworkNameInTemplate.java |  2 +-
 .../location/OrgAndVDCToLocationSupplier.java   |  2 +-
 .../options/InstantiateVAppTemplateOptions.java |  8 +--
 ...thNameMatchingConfigurationKeyOrDefault.java |  2 +-
 ...oudResourceAllocationSettingDataHandler.java |  4 +-
 .../jclouds/blobstore/LocalAsyncBlobStore.java  |  2 +-
 .../MarkersDeleteDirectoryStrategy.java         |  6 +-
 .../strategy/internal/PutBlobsStrategyImpl.java |  2 +-
 .../azure/storage/domain/AzureStorageError.java |  4 +-
 .../jclouds/compute/domain/SecurityGroup.java   | 10 +--
 .../domain/internal/ComputeMetadataImpl.java    |  8 +--
 .../compute/domain/internal/HardwareImpl.java   |  2 +-
 .../domain/internal/NodeMetadataImpl.java       |  4 +-
 .../domain/internal/TemplateBuilderImpl.java    | 48 +++++++-------
 .../compute/internal/BaseComputeService.java    | 20 +++---
 .../compute/options/TemplateOptions.java        | 32 +++++-----
 .../stub/config/StubComputeServiceAdapter.java  | 10 +--
 .../extensions/StubSecurityGroupExtension.java  | 24 +++----
 .../compute/util/ComputeServiceUtils.java       | 18 +++---
 .../internal/BaseComputeServiceLiveTest.java    | 16 ++---
 .../collect/AdvanceUntilEmptyIterable.java      | 12 ++--
 .../collect/internal/Arg0ToPagedIterable.java   |  2 +-
 .../internal/CallerArg0ToPagedIterable.java     |  2 +-
 .../org/jclouds/concurrent/FutureIterables.java | 32 +++++-----
 .../config/ExecutorServiceModule.java           | 10 +--
 .../jclouds/domain/internal/LocationImpl.java   |  4 +-
 .../java/org/jclouds/functions/JoinOnComma.java |  2 +-
 .../jclouds/functions/OnlyElementOrNull.java    |  2 +-
 .../main/java/org/jclouds/http/HttpMessage.java | 30 ++++-----
 core/src/main/java/org/jclouds/http/Uris.java   | 34 +++++-----
 .../functions/UnwrapOnlyJsonValueInSet.java     |  2 +-
 .../org/jclouds/http/options/GetOptions.java    | 22 +++----
 .../location/functions/RegionToEndpoint.java    |  2 +-
 .../location/functions/ZoneToEndpoint.java      |  2 +-
 .../fromconfig/AnyOrConfiguredRegionId.java     |  6 +-
 .../fromconfig/AnyOrConfiguredZoneId.java       |  6 +-
 .../suppliers/all/RegionToProvider.java         |  2 +-
 .../all/RegionToProviderOrJustProvider.java     |  2 +-
 .../location/suppliers/all/ZoneToProvider.java  |  2 +-
 .../ZoneToRegionToProviderOrJustProvider.java   |  6 +-
 .../RegionIdToZoneIdsFromConfiguration.java     |  4 +-
 .../BindLoggersAnnotatedWithResource.java       |  2 +-
 .../java/org/jclouds/reflect/Invocation.java    |  6 +-
 .../rest/binders/BindMapToStringPayload.java    |  2 +-
 .../rest/internal/RestAnnotationProcessor.java  |  8 +--
 .../suppliers/SupplyKeyMatchingValueOrNull.java |  2 +-
 .../BindLaunchSpecificationToFormParams.java    |  6 +-
 .../aws/ec2/compute/AWSEC2ComputeService.java   |  2 +-
 .../aws/ec2/compute/AWSEC2TemplateOptions.java  | 16 ++---
 .../AWSEC2ComputeServiceContextModule.java      | 10 +--
 .../AWSEC2SecurityGroupExtension.java           | 14 ++---
 .../AWSEC2CreateSecurityGroupIfNeeded.java      |  4 +-
 ...curityGroupsAsNeededAndReturnRunOptions.java |  6 +-
 .../compute/AWSEC2ComputeServiceLiveTest.java   |  2 +-
 .../ec2/features/SpotInstanceApiLiveTest.java   |  4 +-
 .../binders/BindPartIdsAndETagsToRequest.java   |  2 +-
 .../ParallelMultipartUploadStrategy.java        | 66 ++++++++++----------
 .../ParseAzureBlobErrorFromXmlContent.java      |  2 +-
 .../v3/features/GeoRegionGroupApiLiveTest.java  |  6 +-
 .../v3/features/GeoServiceApiLiveTest.java      |  4 +-
 .../dynect/v3/features/RecordApiLiveTest.java   |  2 +-
 .../compute/GleSYSComputeServiceAdapter.java    | 12 ++--
 .../glesys/features/ArchiveApiLiveTest.java     | 16 ++---
 .../glesys/features/ServerApiLiveTest.java      | 42 ++++++-------
 .../ParseCredentialsFromJsonResponse.java       |  2 +-
 .../SoftLayerComputeServiceAdapter.java         |  2 +-
 .../features/DirectionalGroupApiLiveTest.java   |  2 +-
 .../org/jclouds/scriptbuilder/InitScript.java   | 16 ++---
 .../jclouds/scriptbuilder/ScriptBuilder.java    |  4 +-
 .../scriptbuilder/domain/AppendFile.java        |  2 +-
 .../scriptbuilder/statements/login/UserAdd.java | 12 ++--
 165 files changed, 616 insertions(+), 620 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/atmos/src/main/java/org/jclouds/atmos/binders/BindUserMetadataToHeaders.java
----------------------------------------------------------------------
diff --git a/apis/atmos/src/main/java/org/jclouds/atmos/binders/BindUserMetadataToHeaders.java b/apis/atmos/src/main/java/org/jclouds/atmos/binders/BindUserMetadataToHeaders.java
index 8259495..8ccf2c3 100644
--- a/apis/atmos/src/main/java/org/jclouds/atmos/binders/BindUserMetadataToHeaders.java
+++ b/apis/atmos/src/main/java/org/jclouds/atmos/binders/BindUserMetadataToHeaders.java
@@ -35,7 +35,7 @@ import com.google.common.collect.Multimaps;
 
 @Singleton
 public class BindUserMetadataToHeaders implements Binder, Function<UserMetadata, Map<String, String>> {
-   
+
    @SuppressWarnings("unchecked")
    @Override
    public <R extends HttpRequest> R bindToRequest(R request, Object input) {
@@ -48,19 +48,19 @@ public class BindUserMetadataToHeaders implements Binder, Function<UserMetadata,
    @Override
    public Map<String, String> apply(UserMetadata md) {
       Builder<String, String> headers = ImmutableMap.builder();
-      if (md.getMetadata().size() > 0) {
+      if (!md.getMetadata().isEmpty()) {
          String header = Joiner.on(',').withKeyValueSeparator("=").join(md.getMetadata());
          headers.put("x-emc-meta", header);
       }
-      if (md.getListableMetadata().size() > 0) {
+      if (!md.getListableMetadata().isEmpty()) {
          String header = Joiner.on(',').withKeyValueSeparator("=").join(md.getListableMetadata());
          headers.put("x-emc-listable-meta", header);
       }
-      if (md.getTags().size() > 0) {
+      if (!md.getTags().isEmpty()) {
          String header = Joiner.on(',').join(md.getTags());
          headers.put("x-emc-tags", header);
       }
-      if (md.getListableTags().size() > 0) {
+      if (!md.getListableTags().isEmpty()) {
          String header = Joiner.on(',').join(md.getListableTags());
          headers.put("x-emc-listable-tags", header);
       }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/byon/src/main/java/org/jclouds/byon/internal/BYONComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/apis/byon/src/main/java/org/jclouds/byon/internal/BYONComputeServiceAdapter.java b/apis/byon/src/main/java/org/jclouds/byon/internal/BYONComputeServiceAdapter.java
index aa178fd..680eee9 100644
--- a/apis/byon/src/main/java/org/jclouds/byon/internal/BYONComputeServiceAdapter.java
+++ b/apis/byon/src/main/java/org/jclouds/byon/internal/BYONComputeServiceAdapter.java
@@ -98,7 +98,7 @@ public class BYONComputeServiceAdapter implements JCloudsNativeComputeServiceAda
                      return arg0.getLocationId();
                   }
                }), Predicates.notNull()));
-      if (zones.size() == 0)
+      if (zones.isEmpty())
          return locations.add(provider).build();
       else
          for (String zone : zones) {
@@ -110,7 +110,7 @@ public class BYONComputeServiceAdapter implements JCloudsNativeComputeServiceAda
 
    @Override
    public NodeMetadata getNode(String id) {
-      
+
       Node node = null;
       try {
          node = nodes.get().getUnchecked(id);
@@ -124,7 +124,7 @@ public class BYONComputeServiceAdapter implements JCloudsNativeComputeServiceAda
    public Image getImage(final String id) {
       throw new UnsupportedOperationException();
    }
-   
+
    @Override
    public void destroyNode(final String id) {
       throw new UnsupportedOperationException();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/CreateServerOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/CreateServerOptions.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/CreateServerOptions.java
index 7c3ceb8..c6e0cc2 100644
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/CreateServerOptions.java
+++ b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/CreateServerOptions.java
@@ -92,9 +92,9 @@ public class CreateServerOptions implements MapBinder {
       ServerRequest server = new ServerRequest(checkNotNull(postParams.get("name"), "name parameter not present").toString(),
                Integer.parseInt(checkNotNull(postParams.get("imageId"), "imageId parameter not present").toString()),
                Integer.parseInt(checkNotNull(postParams.get("flavorId"), "flavorId parameter not present").toString()));
-      if (metadata.size() > 0)
+      if (!metadata.isEmpty())
          server.metadata = metadata;
-      if (files.size() > 0)
+      if (!files.isEmpty())
          server.personality = files;
       if (sharedIpGroupId != null)
          server.sharedIpGroupId = this.sharedIpGroupId;
@@ -130,16 +130,16 @@ public class CreateServerOptions implements MapBinder {
     * group. Any server in a group can share one or more public IPs with any other server in the
     * group. With the exception of the first server in a shared IP group, servers must be launched
     * into shared IP groups. A server may only be a member of one shared IP group.
-    * 
+    *
     * <p/>
     * Servers in the same shared IP group can share public IPs for various high availability and
     * load balancing configurations. To launch an HA server, include the optional sharedIpGroupId
     * element and the server will be launched into that shared IP group.
     * <p />
-    * 
+    *
     * Note: sharedIpGroupId is an optional parameter and for optimal performance, should ONLY be
     * specified when intending to share IPs between servers.
-    * 
+    *
     * @see #withSharedIp(String)
     */
    public CreateServerOptions withSharedIpGroup(int id) {
@@ -177,7 +177,7 @@ public class CreateServerOptions implements MapBinder {
     * specify that the target server network configuration be modified). Shared IP addresses can be
     * used with many standard heartbeat facilities (e.g. keepalived) that monitor for failure and
     * manage IP failover.
-    * 
+    *
     * <p/>
     * If you intend to use a shared IP on the server being created and have no need for a separate
     * public IP address, you may launch the server into a shared IP group and specify an IP address

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersClientLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersClientLiveTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersClientLiveTest.java
index aa9c2ba..c9240f9 100644
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersClientLiveTest.java
+++ b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersClientLiveTest.java
@@ -94,8 +94,8 @@ public class CloudServersClientLiveTest extends BaseComputeServiceContextLiveTes
    public void testLimits() throws Exception {
       Limits response = client.getLimits();
       assert null != response;
-      assertTrue(response.getAbsolute().size() > 0);
-      assertTrue(response.getRate().size() > 0);
+      assertTrue(!response.getAbsolute().isEmpty());
+      assertTrue(!response.getRate().isEmpty());
    }
 
    public void testListServers() throws Exception {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/BaseDriveToMap.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/BaseDriveToMap.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/BaseDriveToMap.java
index 4fe8876..47e9d2a 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/BaseDriveToMap.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/BaseDriveToMap.java
@@ -39,11 +39,11 @@ public class BaseDriveToMap implements Function<Drive, Map<String, String>> {
       builder.put("size", from.getSize() + "");
       if (from.getClaimType() != ClaimType.EXCLUSIVE)
          builder.put("claim:type", from.getClaimType().toString());
-      if (from.getTags().size() != 0)
+      if (!from.getTags().isEmpty())
           builder.put("tags", Joiner.on(' ').join(from.getTags()));
-      if (from.getReaders().size() != 0)
+      if (!from.getReaders().isEmpty())
          builder.put("readers", Joiner.on(' ').join(from.getReaders()));
-      if (from.getUse().size() != 0)
+      if (!from.getUse().isEmpty())
          builder.put("use", Joiner.on(' ').join(from.getUse()));
       return builder.build();
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToDriveInfo.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToDriveInfo.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToDriveInfo.java
index 5753a52..e247adc 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToDriveInfo.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToDriveInfo.java
@@ -39,7 +39,7 @@ public class KeyValuesDelimitedByBlankLinesToDriveInfo implements Function<HttpR
    @Override
    public DriveInfo apply(HttpResponse response) {
       Set<DriveInfo> drives = setParser.apply(response);
-      if (drives.size() == 0)
+      if (drives.isEmpty())
          return null;
       return Iterables.get(drives, 0);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToProfileInfo.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToProfileInfo.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToProfileInfo.java
index 9e1e61b..282787e 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToProfileInfo.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToProfileInfo.java
@@ -39,7 +39,7 @@ public class KeyValuesDelimitedByBlankLinesToProfileInfo implements Function<Htt
    @Override
    public ProfileInfo apply(HttpResponse response) {
       Set<ProfileInfo> drives = setParser.apply(response);
-      if (drives.size() == 0)
+      if (drives.isEmpty())
          return null;
       return Iterables.get(drives, 0);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToServerInfo.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToServerInfo.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToServerInfo.java
index e22a420..0f68bb2 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToServerInfo.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToServerInfo.java
@@ -39,7 +39,7 @@ public class KeyValuesDelimitedByBlankLinesToServerInfo implements Function<Http
    @Override
    public ServerInfo apply(HttpResponse response) {
       Set<ServerInfo> drives = setParser.apply(response);
-      if (drives.size() == 0)
+      if (drives.isEmpty())
          return null;
       return Iterables.get(drives, 0);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToStaticIPInfo.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToStaticIPInfo.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToStaticIPInfo.java
index b02f16b..7e81d84 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToStaticIPInfo.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToStaticIPInfo.java
@@ -39,7 +39,7 @@ public class KeyValuesDelimitedByBlankLinesToStaticIPInfo implements Function<Ht
    @Override
    public StaticIPInfo apply(HttpResponse response) {
       Set<StaticIPInfo> drives = setParser.apply(response);
-      if (drives.size() == 0)
+      if (drives.isEmpty())
          return null;
       return Iterables.get(drives, 0);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToVLANInfo.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToVLANInfo.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToVLANInfo.java
index fba64be..85b2b2b 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToVLANInfo.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/KeyValuesDelimitedByBlankLinesToVLANInfo.java
@@ -39,7 +39,7 @@ public class KeyValuesDelimitedByBlankLinesToVLANInfo implements Function<HttpRe
    @Override
    public VLANInfo apply(HttpResponse response) {
       Set<VLANInfo> drives = setParser.apply(response);
-      if (drives.size() == 0)
+      if (drives.isEmpty())
          return null;
       return Iterables.get(drives, 0);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java
index 0ded8ac..92d8331 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java
@@ -45,7 +45,7 @@ public class ListOfKeyValuesDelimitedByBlankLinesToListOfMaps implements Functio
                   }
                }
             }
-            if (map.size() != 0)
+            if (!map.isEmpty())
                maps.add(map);
          }
       }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToDriveInfo.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToDriveInfo.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToDriveInfo.java
index ff59bab..ef5fc58 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToDriveInfo.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToDriveInfo.java
@@ -42,7 +42,7 @@ public class MapToDriveInfo implements Function<Map<String, String>, DriveInfo>
 
    @Override
    public DriveInfo apply(Map<String, String> from) {
-      if (from.size() == 0)
+      if (from.isEmpty())
          return null;
       DriveInfo.Builder builder = new DriveInfo.Builder();
       builder.name(from.get("name"));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToProfileInfo.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToProfileInfo.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToProfileInfo.java
index 5b364cf..50d24e4 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToProfileInfo.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToProfileInfo.java
@@ -35,9 +35,7 @@ public class MapToProfileInfo implements Function<Map<String, String>, ProfileIn
 
    @Override
    public ProfileInfo apply(Map<String, String> from) {
-      if (from.size() == 0)
-         return null;
-      if (from.size() == 0)
+      if (from.isEmpty())
          return null;
       ProfileInfo.Builder builder = new ProfileInfo.Builder();
       builder.uuid(from.get("uuid"));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToServerInfo.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToServerInfo.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToServerInfo.java
index d539743..245e011 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToServerInfo.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToServerInfo.java
@@ -51,7 +51,7 @@ public class MapToServerInfo implements Function<Map<String, String>, ServerInfo
 
    @Override
    public ServerInfo apply(Map<String, String> from) {
-      if (from.size() == 0)
+      if (from.isEmpty())
          return null;
       ServerInfo.Builder builder = new ServerInfo.Builder();
       builder.name(from.get("name"));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToStaticIPInfo.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToStaticIPInfo.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToStaticIPInfo.java
index 7d66dd9..0a18cfa 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToStaticIPInfo.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToStaticIPInfo.java
@@ -35,9 +35,7 @@ public class MapToStaticIPInfo implements Function<Map<String, String>, StaticIP
 
    @Override
    public StaticIPInfo apply(Map<String, String> from) {
-      if (from.size() == 0)
-         return null;
-      if (from.size() == 0)
+      if (from.isEmpty())
          return null;
       StaticIPInfo.Builder builder = new StaticIPInfo.Builder();
       builder.ip(from.get("resource"));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToVLANInfo.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToVLANInfo.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToVLANInfo.java
index 51c43e3..6b404e3 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToVLANInfo.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/MapToVLANInfo.java
@@ -34,9 +34,7 @@ public class MapToVLANInfo implements Function<Map<String, String>, VLANInfo> {
 
    @Override
    public VLANInfo apply(Map<String, String> from) {
-      if (from.size() == 0)
-         return null;
-      if (from.size() == 0)
+      if (from.isEmpty())
          return null;
       VLANInfo.Builder builder = new VLANInfo.Builder();
       builder.uuid(from.get("resource"));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/ServerToMap.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/ServerToMap.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/ServerToMap.java
index ced6c20..c529db3 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/ServerToMap.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/functions/ServerToMap.java
@@ -45,7 +45,7 @@ public class ServerToMap implements Function<Server, Map<String, String>> {
          builder.put("smp", "auto");
       builder.put("mem", from.getMem() + "");
       builder.put("persistent", from.isPersistent() + "");
-      if (from.getBootDeviceIds().size() != 0)
+      if (!from.getBootDeviceIds().isEmpty())
          builder.put("boot", Joiner.on(' ').join(from.getBootDeviceIds()));
       for (Entry<String, ? extends Device> entry : from.getDevices().entrySet()) {
          builder.put(entry.getKey(), entry.getValue().getDriveUuid());
@@ -67,7 +67,7 @@ public class ServerToMap implements Function<Server, Map<String, String>> {
          builder.put("vnc:password", from.getVnc().getPassword());
       if (from.getVnc().isTls())
          builder.put("vnc:tls", "on");
-      if (from.getUse().size() != 0)
+      if (!from.getUse().isEmpty())
          builder.put("use", Joiner.on(' ').join(from.getUse()));
       return builder.build();
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/predicates/DriveClaimed.java
----------------------------------------------------------------------
diff --git a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/predicates/DriveClaimed.java b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/predicates/DriveClaimed.java
index d651ff4..ce1b95b 100644
--- a/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/predicates/DriveClaimed.java
+++ b/apis/cloudsigma/src/main/java/org/jclouds/cloudsigma/predicates/DriveClaimed.java
@@ -47,7 +47,7 @@ public class DriveClaimed implements Predicate<DriveInfo> {
       if (drive == null)
          return false;
       logger.trace("%s: looking for drive claims: currently: %s", drive.getUuid(), drive.getClaimed());
-      return drive.getClaimed().size() > 0;
+      return !drive.getClaimed().isEmpty();
    }
 
    private DriveInfo refresh(DriveInfo drive) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindAccountSecurityGroupPairsToIndexedQueryParams.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindAccountSecurityGroupPairsToIndexedQueryParams.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindAccountSecurityGroupPairsToIndexedQueryParams.java
index 3665263..b99e644 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindAccountSecurityGroupPairsToIndexedQueryParams.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindAccountSecurityGroupPairsToIndexedQueryParams.java
@@ -41,7 +41,7 @@ public class BindAccountSecurityGroupPairsToIndexedQueryParams implements Binder
    public <R extends HttpRequest> R bindToRequest(R request, Object input) {
       checkArgument(input instanceof Multimap<?, ?>, "this binder is only valid for Multimaps!");
       Multimap<String, String> pairs = (Multimap<String, String>) checkNotNull(input, "account group pairs");
-      checkArgument(pairs.size() > 0, "you must specify at least one account, group pair");
+      checkArgument(!pairs.isEmpty(), "you must specify at least one account, group pair");
 
       Multimap<String, String> existingParams = queryParser().apply(request.getEndpoint().getQuery());
       Builder<String, String> map = ImmutableMultimap.<String, String> builder().putAll(existingParams);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindCIDRsToCommaDelimitedQueryParam.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindCIDRsToCommaDelimitedQueryParam.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindCIDRsToCommaDelimitedQueryParam.java
index 225a8d7..28adf91 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindCIDRsToCommaDelimitedQueryParam.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindCIDRsToCommaDelimitedQueryParam.java
@@ -35,7 +35,7 @@ public class BindCIDRsToCommaDelimitedQueryParam implements Binder {
    public <R extends HttpRequest> R bindToRequest(R request, Object input) {
       checkArgument(input instanceof Iterable<?>, "this binder is only valid for Iterables!");
       Iterable<String> cidrs = (Iterable<String>) checkNotNull(input, "cidr list");
-      checkArgument(Iterables.size(cidrs) > 0, "you must specify at least one cidr range");
+      checkArgument(!Iterables.isEmpty(cidrs), "you must specify at least one cidr range");
       return (R) request.toBuilder().replaceQueryParam("cidrlist", Joiner.on(',').join(cidrs)).build();
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindIdListToCommaDelimitedQueryParam.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindIdListToCommaDelimitedQueryParam.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindIdListToCommaDelimitedQueryParam.java
index 57cf321..f4b3813 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindIdListToCommaDelimitedQueryParam.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/binders/BindIdListToCommaDelimitedQueryParam.java
@@ -35,7 +35,7 @@ public class BindIdListToCommaDelimitedQueryParam implements Binder {
    public <R extends HttpRequest> R bindToRequest(R request, Object input) {
       checkArgument(input instanceof Iterable<?>, "this binder is only valid for Iterables!");
       Iterable<Long> numbers = (Iterable<Long>) checkNotNull(input, "list of Longs");
-      checkArgument(Iterables.size(numbers) > 0, "you must specify at least one element");
+      checkArgument(!Iterables.isEmpty(numbers), "you must specify at least one element");
       return (R) request.toBuilder().replaceQueryParam("ids", Joiner.on(',').join(numbers)).build();
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
index 9c596e4..29f5c85 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/compute/strategy/CloudStackComputeServiceAdapter.java
@@ -164,7 +164,7 @@ public class CloudStackComputeServiceAdapter implements
       } else if (templateOptions.getDomainId() != null) {
           options.domainId(templateOptions.getDomainId());
       }
-      
+
       OptionsConverter optionsConverter = optionsConverters.get(zone.getNetworkType());
       options = optionsConverter.apply(templateOptions, networks, zoneId, options);
 
@@ -174,7 +174,7 @@ public class CloudStackComputeServiceAdapter implements
          options.ipOnDefaultNetwork(templateOptions.getIpOnDefaultNetwork());
       }
 
-      if (templateOptions.getIpsToNetworks().size() > 0) {
+      if (!templateOptions.getIpsToNetworks().isEmpty()) {
          options.ipsToNetworks(templateOptions.getIpsToNetworks());
       }
 
@@ -211,8 +211,8 @@ public class CloudStackComputeServiceAdapter implements
       if (supportsSecurityGroups().apply(zone)) {
          List<Integer> inboundPorts = Ints.asList(templateOptions.getInboundPorts());
 
-         if (templateOptions.getSecurityGroupIds().size() == 0
-             && inboundPorts.size() > 0
+         if (templateOptions.getSecurityGroupIds().isEmpty()
+             && !inboundPorts.isEmpty()
              && templateOptions.shouldGenerateSecurityGroup()) {
             String securityGroupName = namingConvention.create().sharedNameForGroup(group);
             SecurityGroup sg = securityGroupCache.getUnchecked(ZoneSecurityGroupNamePortsCidrs.builder()
@@ -223,7 +223,7 @@ public class CloudStackComputeServiceAdapter implements
             options.securityGroupId(sg.getId());
          }
       }
-      
+
       String templateId = template.getImage().getId();
       String serviceOfferingId = template.getHardware().getId();
 
@@ -241,7 +241,7 @@ public class CloudStackComputeServiceAdapter implements
          assert vm.getPassword() != null : vm;
          credentialsBuilder.password(vm.getPassword());
       }
-      
+
       try {
           if (templateOptions.shouldSetupStaticNat()) {
              Capabilities capabilities = client.getConfigurationApi().listCapabilities();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreateFirewallRulesForIP.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreateFirewallRulesForIP.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreateFirewallRulesForIP.java
index 14b68b5..dd15e19 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreateFirewallRulesForIP.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreateFirewallRulesForIP.java
@@ -65,11 +65,11 @@ public class CreateFirewallRulesForIP {
    public Set<FirewallRule> apply(PublicIPAddress ip, Iterable<Integer> ports) {
       return apply(ip, "tcp", ports);
    }
-    
+
    public Set<FirewallRule> apply(PublicIPAddress ip, String protocol, Iterable<Integer> ports) {
       checkState(ip.getVirtualMachineId() != null,
             "ip %s should be static NATed to a virtual machine before applying rules", ip);
-      if (Iterables.size(ports) == 0)
+      if (Iterables.isEmpty(ports))
          return ImmutableSet.<FirewallRule> of();
       Builder<AsyncCreateResponse> responses = ImmutableSet.builder();
       for (int port : ports) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreatePortForwardingRulesForIP.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreatePortForwardingRulesForIP.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreatePortForwardingRulesForIP.java
index c98e331..dd09f77 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreatePortForwardingRulesForIP.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreatePortForwardingRulesForIP.java
@@ -68,7 +68,7 @@ public class CreatePortForwardingRulesForIP {
    public Set<IPForwardingRule> apply(PublicIPAddress ip, String protocol, Iterable<Integer> ports) {
       checkState(ip.getVirtualMachineId() != null,
             "ip %s should be static NATed to a virtual machine before applying rules", ip);
-      if (Iterables.size(ports) == 0)
+      if (Iterables.isEmpty(ports))
          return ImmutableSet.<IPForwardingRule> of();
       Builder<AsyncCreateResponse> responses = ImmutableSet.builder();
       for (int port : ports) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreateSecurityGroupIfNeeded.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreateSecurityGroupIfNeeded.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreateSecurityGroupIfNeeded.java
index 5f7ad33..8360977 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreateSecurityGroupIfNeeded.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/functions/CreateSecurityGroupIfNeeded.java
@@ -75,7 +75,7 @@ public class CreateSecurityGroupIfNeeded implements Function<ZoneSecurityGroupNa
 
          logger.debug("<< created securityGroup(%s)", securityGroup);
          ImmutableSet<String> cidrs;
-         if (input.getCidrs().size() > 0) {
+         if (!input.getCidrs().isEmpty()) {
             cidrs = ImmutableSet.copyOf(input.getCidrs());
          } else {
             cidrs = ImmutableSet.of("0.0.0.0/0");

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java
index 0bc04a9..e518763 100644
--- a/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java
+++ b/apis/cloudstack/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java
@@ -76,7 +76,7 @@ public class CorrectHypervisorForZone implements Function<String, Predicate<Temp
       } catch (NullPointerException e) {
          throw new IllegalArgumentException("unknown zone: " + zoneId);
       }
-      if (acceptableHypervisorsInZone.size() == 0)
+      if (acceptableHypervisorsInZone.isEmpty())
          return Predicates.alwaysFalse();
       return new Predicate<Template>() {
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackExperimentLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackExperimentLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackExperimentLiveTest.java
index 938cc77..7affab0 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackExperimentLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/compute/CloudStackExperimentLiveTest.java
@@ -76,7 +76,7 @@ public class CloudStackExperimentLiveTest extends BaseCloudStackApiLiveTest {
       Network network = null;
       Set<? extends NodeMetadata> nodes = null;
       try {
-         assert view.getComputeService().listAssignableLocations().size() > 0;
+         assert !view.getComputeService().listAssignableLocations().isEmpty();
 
          Template template = view.getComputeService().templateBuilder().build();
 
@@ -103,7 +103,7 @@ public class CloudStackExperimentLiveTest extends BaseCloudStackApiLiveTest {
          // launch the VM
          nodes = view.getComputeService().createNodesInGroup(group, 1, template);
 
-         assert nodes.size() > 0;
+         assert !nodes.isEmpty();
 
       } catch (RunNodesException e) {
          Logger.getAnonymousLogger().log(Level.SEVERE, "error creating nodes", e);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AddressApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AddressApiLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AddressApiLiveTest.java
index 4a37fb0..dc685a6 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AddressApiLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/AddressApiLiveTest.java
@@ -42,7 +42,7 @@ public class AddressApiLiveTest extends BaseCloudStackApiLiveTest {
 
    @BeforeGroups(groups = "live")
    void networksEnabled() {
-      networksEnabled = client.getNetworkApi().listNetworks().size() > 0;
+      networksEnabled = !client.getNetworkApi().listNetworks().isEmpty();
    }
 
    private PublicIPAddress ip = null;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/DomainUserApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/DomainUserApiLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/DomainUserApiLiveTest.java
index cb56476..2deb76c 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/DomainUserApiLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/DomainUserApiLiveTest.java
@@ -43,7 +43,7 @@ public class DomainUserApiLiveTest extends BaseCloudStackApiLiveTest {
 
       Set<User> users = domainAdminClient.getUserClient().listUsers();
 
-      assert users.size() > 0;
+      assert !users.isEmpty();
       assert users.contains(user); // contains the current user
 
       for (User user : users) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/FirewallApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/FirewallApiLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/FirewallApiLiveTest.java
index edce600..a96fad8 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/FirewallApiLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/FirewallApiLiveTest.java
@@ -143,7 +143,7 @@ public class FirewallApiLiveTest extends BaseCloudStackApiLiveTest {
       Set<FirewallRule> rules = client.getFirewallApi().listFirewallRules();
 
       assert rules != null;
-      assertTrue(rules.size() > 0);
+      assertTrue(!rules.isEmpty());
 
       for (FirewallRule rule : rules) {
          checkFirewallRule(rule);
@@ -172,7 +172,7 @@ public class FirewallApiLiveTest extends BaseCloudStackApiLiveTest {
       Set<FirewallRule> rules = client.getFirewallApi().listEgressFirewallRules();
 
       assert rules != null;
-      assertTrue(rules.size() > 0);
+      assertTrue(!rules.isEmpty());
 
       for (FirewallRule rule : rules) {
          checkEgressFirewallRule(rule);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalHostApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalHostApiLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalHostApiLiveTest.java
index 445f30e..1ed94fd 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalHostApiLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalHostApiLiveTest.java
@@ -41,7 +41,7 @@ public class GlobalHostApiLiveTest extends BaseCloudStackApiLiveTest {
       skipIfNotGlobalAdmin();
 
       Set<Host> hosts = globalAdminClient.getHostClient().listHosts();
-      assert hosts.size() > 0 : hosts;
+      assert !hosts.isEmpty() : hosts;
 
       for (Host host : hosts) {
          checkHost(host);
@@ -68,7 +68,7 @@ public class GlobalHostApiLiveTest extends BaseCloudStackApiLiveTest {
       skipIfNotGlobalAdmin();
 
       Set<Cluster> clusters = globalAdminClient.getHostClient().listClusters();
-      assert clusters.size() > 0 : clusters;
+      assert !clusters.isEmpty() : clusters;
 
       for (Cluster cluster : clusters) {
          checkCluster(cluster);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalStoragePoolApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalStoragePoolApiLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalStoragePoolApiLiveTest.java
index 68dd450..9d0bdfa 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalStoragePoolApiLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalStoragePoolApiLiveTest.java
@@ -41,7 +41,7 @@ public class GlobalStoragePoolApiLiveTest extends BaseCloudStackApiLiveTest {
 
       Set<StoragePool> result = globalAdminClient.getStoragePoolClient().listStoragePools();
       assertNotNull(result);
-      assertTrue(result.size() > 0);
+      assertTrue(!result.isEmpty());
       for (StoragePool pool : result) {
          assertNotNull(pool.getId());
          assertFalse(Strings.isNullOrEmpty(pool.getName()));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalUserApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalUserApiLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalUserApiLiveTest.java
index 44575e5..cccfa62 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalUserApiLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalUserApiLiveTest.java
@@ -89,7 +89,7 @@ public class GlobalUserApiLiveTest extends BaseCloudStackApiLiveTest {
       CloudStackApi client = context.getApi();
       Set<Account> accounts = client.getAccountApi().listAccounts();
 
-      assert accounts.size() > 0;
+      assert !accounts.isEmpty();
 
       context.close();
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalVlanApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalVlanApiLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalVlanApiLiveTest.java
index b3ddf35..34fe5be 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalVlanApiLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalVlanApiLiveTest.java
@@ -98,17 +98,17 @@ public class GlobalVlanApiLiveTest extends BaseCloudStackApiLiveTest {
                                                            return network.getNetworkOfferingId().equals(offering.getId());
                                                         }
                                                      });
-         
-         if (suitableNetworks.size() > 0) {
+
+         if (!suitableNetworks.isEmpty()) {
             network = Iterables.get(suitableNetworks, 0);
             usingExistingNetwork = true;
-         
+
          } else if (network == null) {
             network = client.getNetworkApi().createNetworkInZone(zone.getId(),
                                                                  offering.getId(), "net-" + prefix, "jclouds test " + prefix);
             usingExistingNetwork = false;
          }
-         
+
          range = globalAdminClient.getVlanClient().createVlanIPRange("172.19.1.1", "172.19.1.199", CreateVlanIPRangeOptions.Builder
                                                                      .accountInDomain(user.getAccount(), user.getDomainId())
                                                                      .forVirtualNetwork(true)

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiLiveTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiLiveTest.java
index a0dc153..2ca160c 100644
--- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiLiveTest.java
+++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/VirtualMachineApiLiveTest.java
@@ -84,7 +84,7 @@ public class VirtualMachineApiLiveTest extends BaseCloudStackApiLiveTest {
    public static VirtualMachine createVirtualMachine(CloudStackApi client, String defaultTemplate,
          Predicate<String> jobComplete, Predicate<VirtualMachine> virtualMachineRunning) {
       Set<Network> networks = client.getNetworkApi().listNetworks(isDefault(true));
-      if (networks.size() > 0) {
+      if (!networks.isEmpty()) {
          Network network = get(filter(networks, new Predicate<Network>() {
             @Override
             public boolean apply(Network network) {
@@ -367,7 +367,7 @@ public class VirtualMachineApiLiveTest extends BaseCloudStackApiLiveTest {
       // assert vm.getRootDeviceType() != null : vm;
       if (vm.getJobId() != null)
          assert vm.getJobStatus() != null : vm;
-      assert vm.getNICs() != null && vm.getNICs().size() > 0 : vm;
+      assert vm.getNICs() != null && !vm.getNICs().isEmpty() : vm;
       for (NIC nic : vm.getNICs()) {
          assert nic.getId() != null : vm;
          assert nic.getNetworkId() != null : vm;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/features/AlarmApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/features/AlarmApiLiveTest.java b/apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/features/AlarmApiLiveTest.java
index cdc171e..961af7d 100644
--- a/apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/features/AlarmApiLiveTest.java
+++ b/apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/features/AlarmApiLiveTest.java
@@ -58,7 +58,7 @@ public class AlarmApiLiveTest extends BaseCloudWatchApiLiveTest {
    protected void beforeClass() throws Exception {
       IterableWithMarker<Metric> metrics = metricApi().list(new ListMetricsOptions().metricName(metricName));
 
-      if (Iterables.size(metrics) == 0) {
+      if (Iterables.isEmpty(metrics)) {
          metricApi().putMetricsInNamespace(ImmutableSet.of(
                MetricDatum.builder()
                           .metricName(metricName)
@@ -92,7 +92,7 @@ public class AlarmApiLiveTest extends BaseCloudWatchApiLiveTest {
    @AfterClass
    protected void afterClass() throws Exception {
       IterableWithMarker<Alarm> alarms = api().list(new ListAlarmsOptions().alarmName(alarmName)).get(0);
-      if (Iterables.size(alarms) > 0) {
+      if (!Iterables.isEmpty(alarms)) {
          api().delete(ImmutableSet.of(alarmName));
       }
    }
@@ -249,7 +249,7 @@ public class AlarmApiLiveTest extends BaseCloudWatchApiLiveTest {
 
       success = retry(new Predicate<ListAlarmsOptions>() {
          public boolean apply(ListAlarmsOptions options) {
-            return Iterables.size(api().list(options).get(0)) == 0;
+            return Iterables.isEmpty(api().list(options).get(0));
          }
       }, 5, 1, MINUTES).apply(dmo);
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/features/MetricApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/features/MetricApiLiveTest.java b/apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/features/MetricApiLiveTest.java
index 7b26a60..2c84832 100644
--- a/apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/features/MetricApiLiveTest.java
+++ b/apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/features/MetricApiLiveTest.java
@@ -166,7 +166,7 @@ public class MetricApiLiveTest extends BaseCloudWatchApiLiveTest {
                                                  .unit(Unit.PERCENT).build();
                GetMetricStatisticsResponse response = api().getMetricStatistics(options);
 
-               if (response.size() > 0) {
+               if (!response.isEmpty()) {
                   checkNotNull(response.getLabel());
 
                   for (Datapoint datapoint : response) {
@@ -200,13 +200,13 @@ public class MetricApiLiveTest extends BaseCloudWatchApiLiveTest {
 
       performDefaultMetricsTests(response);
 
-      if (Iterables.size(response) > 0) {
+      if (!Iterables.isEmpty(response)) {
          Metric metric = response.iterator().next();
 
          testMetricName = metric.getMetricName();
          testNamespace = metric.getNamespace();
 
-         if (metric.getDimensions().size() > 0) {
+         if (!metric.getDimensions().isEmpty()) {
             Dimension dimension = metric.getDimensions().iterator().next();
 
             testDimensionName = dimension.getName();
@@ -217,7 +217,7 @@ public class MetricApiLiveTest extends BaseCloudWatchApiLiveTest {
             for (Metric metric1 : response) {
                Set<Dimension> dimensions = metric1.getDimensions();
 
-               if (dimensions.size() > 0) {
+               if (!dimensions.isEmpty()) {
                   Dimension dimension = metric.getDimensions().iterator().next();
 
                   testDimensionName = dimension.getName();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/ec2/src/main/java/org/jclouds/ec2/binders/BindIpPermissionsToIndexedFormParams.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/binders/BindIpPermissionsToIndexedFormParams.java b/apis/ec2/src/main/java/org/jclouds/ec2/binders/BindIpPermissionsToIndexedFormParams.java
index f8030e9..2418d86 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/binders/BindIpPermissionsToIndexedFormParams.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/binders/BindIpPermissionsToIndexedFormParams.java
@@ -39,7 +39,7 @@ public class BindIpPermissionsToIndexedFormParams implements Binder {
       for (IpPermission perm : (Iterable<IpPermission>) input)
          formBuilder.putAll(IpPermissions.buildFormParametersForIndex(index++, perm));
       ImmutableMultimap<String, String> forms = formBuilder.build();
-      return forms.size() == 0 ? request : (R) request.toBuilder().replaceFormParams(forms).build();
+      return forms.isEmpty() ? request : (R) request.toBuilder().replaceFormParams(forms).build();
    }
 
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/ec2/src/main/java/org/jclouds/ec2/compute/EC2ComputeService.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/compute/EC2ComputeService.java b/apis/ec2/src/main/java/org/jclouds/ec2/compute/EC2ComputeService.java
index 682786e..3265325 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/compute/EC2ComputeService.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/compute/EC2ComputeService.java
@@ -164,7 +164,7 @@ public class EC2ComputeService extends BaseComputeService {
          return in.getProviderId();
       }
    };
-   
+
    private Set<NodeMetadata> addTagsAndNamesToInstancesInRegion(Map<String, String> common, Set<String> nodeNames,
                                                                 Set<? extends NodeMetadata> input, String region,
                                                                 String group) {
@@ -219,8 +219,8 @@ public class EC2ComputeService extends BaseComputeService {
       checkNotNull(emptyToNull(region), "region must be defined");
       checkNotNull(emptyToNull(group), "group must be defined");
       String groupName = namingConvention.create().sharedNameForGroup(group);
-      
-      if (client.getSecurityGroupApi().get().describeSecurityGroupsInRegion(region, groupName).size() > 0) {
+
+      if (!client.getSecurityGroupApi().get().describeSecurityGroupsInRegion(region, groupName).isEmpty()) {
          logger.debug(">> deleting securityGroup(%s)", groupName);
          client.getSecurityGroupApi().get().deleteSecurityGroupInRegion(region, groupName);
          // TODO: test this clear happens
@@ -240,7 +240,7 @@ public class EC2ComputeService extends BaseComputeService {
          Predicate<String> keyNameMatcher = namingConvention.create().containsGroup(group);
          String oldKeyNameRegex = String.format("jclouds#%s#%s#%s", group, region, "[0-9a-f]+").replace('#', delimiter);
          // old keypair pattern too verbose as it has an unnecessary region qualifier
-         
+
          if (keyNameMatcher.apply(keyName) || keyName.matches(oldKeyNameRegex)) {
             Set<String> instancesUsingKeyPair = extractIdsFromInstances(concat(client.getInstanceApi().get()
                   .describeInstancesInRegionWithFilter(region, ImmutableMultimap.<String, String>builder()
@@ -248,7 +248,7 @@ public class EC2ComputeService extends BaseComputeService {
                           .put("instance-state-name", InstanceState.SHUTTING_DOWN.toString())
                           .put("key-name", keyPair.getKeyName()).build())));
 
-            if (instancesUsingKeyPair.size() > 0) {
+            if (!instancesUsingKeyPair.isEmpty()) {
                logger.debug("<< inUse keyPair(%s), by (%s)", keyPair.getKeyName(), instancesUsingKeyPair);
             } else {
                logger.debug(">> deleting keyPair(%s)", keyPair.getKeyName());
@@ -292,12 +292,12 @@ public class EC2ComputeService extends BaseComputeService {
       // For issue #445, tries to delete security groups first: ec2 throws exception if in use, but
       // deleting a key pair does not.
       // This is "belt-and-braces" because deleteKeyPair also does extractIdsFromInstances & usingKeyPairAndNotDead
-      // for us to check if any instances are using the key-pair before we delete it. 
-      // There is (probably?) still a race if someone is creating instances at the same time as deleting them: 
-      // we may delete the key-pair just when the node-being-created was about to rely on the incidental 
+      // for us to check if any instances are using the key-pair before we delete it.
+      // There is (probably?) still a race if someone is creating instances at the same time as deleting them:
+      // we may delete the key-pair just when the node-being-created was about to rely on the incidental
       // resources existing.
 
-      // Also in #445, in aws-ec2 the deleteSecurityGroup sometimes fails after terminating the final VM using a 
+      // Also in #445, in aws-ec2 the deleteSecurityGroup sometimes fails after terminating the final VM using a
       // given security group, if called very soon after the VM's state reports terminated. Empirically, it seems that
       // waiting a small time (e.g. enabling logging or debugging!) then the tests pass. We therefore retry.
       // TODO: this could be moved to a config module, also the narrative above made more concise

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/ec2/src/main/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtension.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtension.java b/apis/ec2/src/main/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtension.java
index 789a7b6..612b529 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtension.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/compute/extensions/EC2SecurityGroupExtension.java
@@ -77,7 +77,7 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
                                     @Memoized Supplier<Set<? extends Location>> locations,
                                     @Named("SECURITY") LoadingCache<RegionAndName, String> groupCreator,
                                     GroupNamingConvention.Factory namingConvention) {
-                                    
+
       this.client = checkNotNull(client, "client");
       this.userExecutor = checkNotNull(userExecutor, "userExecutor");
       this.regions = checkNotNull(regions, "regions");
@@ -111,24 +111,24 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
                                                  groupConverter);
       return ImmutableSet.copyOf(groups);
    }
-   
+
    @Override
    public Set<SecurityGroup> listSecurityGroupsForNode(String id) {
       checkNotNull(id, "id");
       String[] parts = AWSUtils.parseHandle(id);
       String region = parts[0];
       String instanceId = parts[1];
-      
+
       RunningInstance instance = getOnlyElement(Iterables.concat(client.getInstanceApi().get().describeInstancesInRegion(region, instanceId)));
 
       if (instance == null) {
          return ImmutableSet.of();
       }
-      
+
       Set<String> groupNames = instance.getGroupNames();
       Set<? extends org.jclouds.ec2.domain.SecurityGroup> rawGroups =
          client.getSecurityGroupApi().get().describeSecurityGroupsInRegion(region, Iterables.toArray(groupNames, String.class));
-      
+
       return ImmutableSet.copyOf(transform(filter(rawGroups, notNull()), groupConverter));
    }
 
@@ -141,7 +141,7 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
 
       Set<? extends org.jclouds.ec2.domain.SecurityGroup> rawGroups =
          client.getSecurityGroupApi().get().describeSecurityGroupsInRegion(region, groupId);
-      
+
       return getOnlyElement(transform(filter(rawGroups, notNull()), groupConverter));
    }
 
@@ -154,7 +154,7 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
          return null;
       }
    }
-   
+
    public SecurityGroup createSecurityGroup(String name, String region) {
       String markerGroup = namingConvention.create().sharedNameForGroup(name);
       RegionNameAndIngressRules regionAndName = new RegionNameAndIngressRules(region, markerGroup, new int[] {},
@@ -171,8 +171,8 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
       String[] parts = AWSUtils.parseHandle(id);
       String region = parts[0];
       String groupName = parts[1];
-      
-      if (client.getSecurityGroupApi().get().describeSecurityGroupsInRegion(region, groupName).size() > 0) {
+
+      if (!client.getSecurityGroupApi().get().describeSecurityGroupsInRegion(region, groupName).isEmpty()) {
          client.getSecurityGroupApi().get().deleteSecurityGroupInRegion(region, groupName);
          // TODO: test this clear happens
          groupCreator.invalidate(new RegionNameAndIngressRules(region, groupName, null, false));
@@ -188,7 +188,7 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
       String region = AWSUtils.getRegionFromLocationOrNull(group.getLocation());
       String name = group.getName();
 
-      if (ipPermission.getCidrBlocks().size() > 0) {
+      if (!ipPermission.getCidrBlocks().isEmpty()) {
          for (String cidr : ipPermission.getCidrBlocks()) {
             client.getSecurityGroupApi().get().
                authorizeSecurityGroupIngressInRegion(region,
@@ -200,7 +200,7 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
          }
       }
 
-      if (ipPermission.getTenantIdGroupNamePairs().size() > 0) {
+      if (!ipPermission.getTenantIdGroupNamePairs().isEmpty()) {
          for (String userId : ipPermission.getTenantIdGroupNamePairs().keySet()) {
             for (String groupName : ipPermission.getTenantIdGroupNamePairs().get(userId)) {
                client.getSecurityGroupApi().get().
@@ -222,7 +222,7 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
       String region = AWSUtils.getRegionFromLocationOrNull(group.getLocation());
       String name = group.getName();
 
-      if (Iterables.size(ipRanges) > 0) {
+      if (!Iterables.isEmpty(ipRanges)) {
          for (String cidr : ipRanges) {
             client.getSecurityGroupApi().get().
                authorizeSecurityGroupIngressInRegion(region,
@@ -234,7 +234,7 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
          }
       }
 
-      if (tenantIdGroupNamePairs.size() > 0) {
+      if (!tenantIdGroupNamePairs.isEmpty()) {
          for (String userId : tenantIdGroupNamePairs.keySet()) {
             for (String groupName : tenantIdGroupNamePairs.get(userId)) {
                client.getSecurityGroupApi().get().
@@ -244,16 +244,16 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
             }
          }
       }
-      
+
       return getSecurityGroupById(new RegionAndName(region, group.getName()).slashEncode());
    }
-      
+
    @Override
    public SecurityGroup removeIpPermission(IpPermission ipPermission, SecurityGroup group) {
       String region = AWSUtils.getRegionFromLocationOrNull(group.getLocation());
       String name = group.getName();
 
-      if (ipPermission.getCidrBlocks().size() > 0) {
+      if (!ipPermission.getCidrBlocks().isEmpty()) {
          for (String cidr : ipPermission.getCidrBlocks()) {
             client.getSecurityGroupApi().get().
                revokeSecurityGroupIngressInRegion(region,
@@ -265,7 +265,7 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
          }
       }
 
-      if (ipPermission.getTenantIdGroupNamePairs().size() > 0) {
+      if (!ipPermission.getTenantIdGroupNamePairs().isEmpty()) {
          for (String userId : ipPermission.getTenantIdGroupNamePairs().keySet()) {
             for (String groupName : ipPermission.getTenantIdGroupNamePairs().get(userId)) {
                client.getSecurityGroupApi().get().
@@ -287,7 +287,7 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
       String region = AWSUtils.getRegionFromLocationOrNull(group.getLocation());
       String name = group.getName();
 
-      if (Iterables.size(ipRanges) > 0) {
+      if (!Iterables.isEmpty(ipRanges)) {
          for (String cidr : ipRanges) {
             client.getSecurityGroupApi().get().
                revokeSecurityGroupIngressInRegion(region,
@@ -299,7 +299,7 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
          }
       }
 
-      if (tenantIdGroupNamePairs.size() > 0) {
+      if (!tenantIdGroupNamePairs.isEmpty()) {
          for (String userId : tenantIdGroupNamePairs.keySet()) {
             for (String groupName : tenantIdGroupNamePairs.get(userId)) {
                client.getSecurityGroupApi().get().
@@ -309,7 +309,7 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
             }
          }
       }
-      
+
       return getSecurityGroupById(new RegionAndName(region, group.getName()).slashEncode());
    }
 
@@ -336,23 +336,23 @@ public class EC2SecurityGroupExtension implements SecurityGroupExtension {
    protected Iterable<? extends org.jclouds.ec2.domain.SecurityGroup> pollSecurityGroups() {
       Iterable<? extends Set<? extends org.jclouds.ec2.domain.SecurityGroup>> groups
          = transform(regions.get(), allSecurityGroupsInRegion());
-      
+
       return concat(groups);
    }
 
-   
+
    protected Iterable<? extends org.jclouds.ec2.domain.SecurityGroup> pollSecurityGroupsByRegion(String region) {
       return allSecurityGroupsInRegion().apply(region);
    }
 
    protected Function<String, Set<? extends org.jclouds.ec2.domain.SecurityGroup>> allSecurityGroupsInRegion() {
       return new Function<String, Set<? extends org.jclouds.ec2.domain.SecurityGroup>>() {
-         
+
          @Override
          public Set<? extends org.jclouds.ec2.domain.SecurityGroup> apply(String from) {
             return client.getSecurityGroupApi().get().describeSecurityGroupsInRegion(from);
          }
-         
+
       };
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/ec2/src/main/java/org/jclouds/ec2/compute/options/EC2TemplateOptions.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/compute/options/EC2TemplateOptions.java b/apis/ec2/src/main/java/org/jclouds/ec2/compute/options/EC2TemplateOptions.java
index 9a2f968..3e5f34c 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/compute/options/EC2TemplateOptions.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/compute/options/EC2TemplateOptions.java
@@ -70,11 +70,11 @@ public class EC2TemplateOptions extends TemplateOptions implements Cloneable {
       super.copyTo(to);
       if (to instanceof EC2TemplateOptions) {
          EC2TemplateOptions eTo = EC2TemplateOptions.class.cast(to);
-         if (getGroups().size() > 0)
+         if (!getGroups().isEmpty())
             eTo.securityGroups(getGroups());
          if (getKeyPair() != null)
             eTo.keyPair(getKeyPair());
-         if (getBlockDeviceMappings().size() > 0)
+         if (!getBlockDeviceMappings().isEmpty())
             eTo.blockDeviceMappings(getBlockDeviceMappings());
          if (!shouldAutomaticallyCreateKeyPair())
             eTo.noKeyPair();
@@ -119,15 +119,15 @@ public class EC2TemplateOptions extends TemplateOptions implements Cloneable {
    @Override
    public ToStringHelper string() {
       ToStringHelper toString = super.string();
-      if (groupNames.size() != 0)
+      if (!groupNames.isEmpty())
          toString.add("groupNames", groupNames);
       if (noKeyPair)
          toString.add("noKeyPair", noKeyPair);
       toString.add("keyPair", keyPair);
-      if (userData != null && userData.size() > 0)
+      if (userData != null && !userData.isEmpty())
          toString.add("userDataCksum", Hashing.crc32().hashBytes(Bytes.toArray(userData)));
       ImmutableSet<BlockDeviceMapping> mappings = blockDeviceMappings.build();
-      if (mappings.size() != 0)
+      if (!mappings.isEmpty())
          toString.add("blockDeviceMappings", mappings);
       if (maxCount != null && maxCount.intValue() > 0)
          toString.add("maxCount", maxCount);
@@ -139,7 +139,7 @@ public class EC2TemplateOptions extends TemplateOptions implements Cloneable {
    public static final EC2TemplateOptions NONE = new EC2TemplateOptions();
 
    /**
-    * 
+    *
     * @see EC2TemplateOptions#securityGroups(Iterable<String>)
     */
    public EC2TemplateOptions securityGroups(String... groupNames) {
@@ -150,7 +150,7 @@ public class EC2TemplateOptions extends TemplateOptions implements Cloneable {
     * Specifies the security groups to be used for nodes with this template
     */
    public EC2TemplateOptions securityGroups(Iterable<String> groupNames) {
-      checkArgument(Iterables.size(groupNames) > 0, "you must specify at least one security group");
+      checkArgument(!Iterables.isEmpty(groupNames), "you must specify at least one security group");
       for (String groupId : groupNames)
          checkNotNull(emptyToNull(groupId), "all security groups must be non-empty");
       this.groupNames = ImmutableSet.copyOf(groupNames);
@@ -425,7 +425,7 @@ public class EC2TemplateOptions extends TemplateOptions implements Cloneable {
          EC2TemplateOptions options = new EC2TemplateOptions();
          return options.runScript(script);
       }
-      
+
       public static EC2TemplateOptions runScript(String script) {
          EC2TemplateOptions options = new EC2TemplateOptions();
          return options.runScript(script);
@@ -477,7 +477,7 @@ public class EC2TemplateOptions extends TemplateOptions implements Cloneable {
    public EC2TemplateOptions authorizePublicKey(String publicKey) {
       return EC2TemplateOptions.class.cast(super.authorizePublicKey(publicKey));
    }
-   
+
    /**
     * {@inheritDoc}
     */
@@ -485,7 +485,7 @@ public class EC2TemplateOptions extends TemplateOptions implements Cloneable {
    public EC2TemplateOptions installPrivateKey(String privateKey) {
       return EC2TemplateOptions.class.cast(super.installPrivateKey(privateKey));
    }
-   
+
    /**
     * {@inheritDoc}
     */
@@ -629,7 +629,7 @@ public class EC2TemplateOptions extends TemplateOptions implements Cloneable {
    public EC2TemplateOptions blockOnComplete(boolean blockOnComplete) {
       return EC2TemplateOptions.class.cast(super.blockOnComplete(blockOnComplete));
    }
-   
+
    /**
     * @return groupNames the user specified to run instances with, or zero
     *         length set to create an implicit group

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java b/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java
index 454172c..2965efa 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.java
@@ -90,7 +90,7 @@ public class CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions {
 
          Set<BlockDeviceMapping> blockDeviceMappings = EC2TemplateOptions.class.cast(template.getOptions())
                   .getBlockDeviceMappings();
-         if (blockDeviceMappings.size() > 0) {
+         if (!blockDeviceMappings.isEmpty()) {
             checkState("ebs".equals(template.getImage().getUserMetadata().get("rootDeviceType")),
                      "BlockDeviceMapping only available on ebs boot");
             instanceOptions.withBlockDeviceMappings(blockDeviceMappings);
@@ -188,7 +188,7 @@ public class CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions {
    }
 
    protected boolean userSpecifiedTheirOwnGroups(TemplateOptions options) {
-      return options instanceof EC2TemplateOptions && EC2TemplateOptions.class.cast(options).getGroups().size() > 0;
+      return options instanceof EC2TemplateOptions && !EC2TemplateOptions.class.cast(options).getGroups().isEmpty();
    }
 
    // allows us to mock this method

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/EC2CreateNodesInGroupThenAddToSet.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/EC2CreateNodesInGroupThenAddToSet.java b/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/EC2CreateNodesInGroupThenAddToSet.java
index e41c0f8..35a7aa5 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/EC2CreateNodesInGroupThenAddToSet.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/compute/strategy/EC2CreateNodesInGroupThenAddToSet.java
@@ -130,7 +130,7 @@ public class EC2CreateNodesInGroupThenAddToSet implements CreateNodesInGroupThen
       Template mutableTemplate = template.clone();
 
       Set<RunningInstance> started = runInstancesAndWarnOnInvisible(group, count, mutableTemplate);
-      if (started.size() == 0) {
+      if (started.isEmpty()) {
          logger.warn("<< unable to start instances(%s)", mutableTemplate);
          return ImmutableMap.of();
       }
@@ -151,7 +151,7 @@ public class EC2CreateNodesInGroupThenAddToSet implements CreateNodesInGroupThen
       Set<RunningInstance> started = createKeyPairAndSecurityGroupsAsNeededThenRunInstances(group, count,
             mutableTemplate);
       Set<RegionAndName> startedIds = ImmutableSet.copyOf(transform(started, instanceToRegionAndName));
-      if (startedIds.size() == 0) {
+      if (startedIds.isEmpty()) {
          return ImmutableSet.copyOf(started);
       }
       logger.debug("<< started instances(%s)", startedIds);
@@ -161,7 +161,7 @@ public class EC2CreateNodesInGroupThenAddToSet implements CreateNodesInGroupThen
 
       // add an exception for each of the nodes we cannot customize
       Set<RegionAndName> invisibleIds = difference(startedIds, visibleIds);
-      if (invisibleIds.size() > 0) {
+      if (!invisibleIds.isEmpty()) {
          logger.warn("<< not api visible instances(%s)", invisibleIds);
       }
       return started;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/ec2/src/main/java/org/jclouds/ec2/domain/SecurityGroup.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/domain/SecurityGroup.java b/apis/ec2/src/main/java/org/jclouds/ec2/domain/SecurityGroup.java
index 00b61c1..a45a16f 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/domain/SecurityGroup.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/domain/SecurityGroup.java
@@ -214,7 +214,7 @@ public class SecurityGroup extends ForwardingSet<IpPermission> {
    protected ToStringHelper string() {
       return MoreObjects.toStringHelper(this).omitNullValues().add("region", region).add("id", id).add("name", name)
             .add("ownerId", ownerId).add("description", description)
-            .add("ipPermissions", ipPermissions.size() == 0 ? null : ipPermissions);
+            .add("ipPermissions", ipPermissions.isEmpty() ? null : ipPermissions);
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/ec2/src/main/java/org/jclouds/ec2/predicates/VolumeAttached.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/predicates/VolumeAttached.java b/apis/ec2/src/main/java/org/jclouds/ec2/predicates/VolumeAttached.java
index 8eb4303..bfed24b 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/predicates/VolumeAttached.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/predicates/VolumeAttached.java
@@ -30,7 +30,7 @@ import com.google.common.collect.Sets;
 import com.google.inject.Inject;
 
 /**
- * 
+ *
  * Tests to see if a volume is attached.
  */
 @Singleton
@@ -49,7 +49,7 @@ public class VolumeAttached implements Predicate<Attachment> {
       logger.trace("looking for volume %s", attachment.getVolumeId());
       Volume volume = Iterables.getOnlyElement(client.describeVolumesInRegion(attachment
                .getRegion(), attachment.getVolumeId()));
-      if (volume.getAttachments().size() == 0) {
+      if (volume.getAttachments().isEmpty()) {
          return false;
       }
       Attachment lastAttachment = Sets.newTreeSet(volume.getAttachments()).last();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/ec2/src/main/java/org/jclouds/ec2/predicates/VolumeDetached.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/predicates/VolumeDetached.java b/apis/ec2/src/main/java/org/jclouds/ec2/predicates/VolumeDetached.java
index 55995bb..c166de2 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/predicates/VolumeDetached.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/predicates/VolumeDetached.java
@@ -51,7 +51,7 @@ public class VolumeDetached implements Predicate<Attachment> {
               .getRegion(), attachment.getVolumeId()));
 
       /*If attachment size is 0 volume is detached for sure.*/
-      if (volume.getAttachments().size() == 0) {
+      if (volume.getAttachments().isEmpty()) {
          return true;
       }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/ec2/src/main/java/org/jclouds/ec2/suppliers/DescribeAvailabilityZonesInRegion.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/suppliers/DescribeAvailabilityZonesInRegion.java b/apis/ec2/src/main/java/org/jclouds/ec2/suppliers/DescribeAvailabilityZonesInRegion.java
index f97e962..5a2b846 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/suppliers/DescribeAvailabilityZonesInRegion.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/suppliers/DescribeAvailabilityZonesInRegion.java
@@ -70,7 +70,7 @@ public class DescribeAvailabilityZonesInRegion implements RegionIdToZoneIdsSuppl
                }
 
             }));
-            if (zones.size() > 0)
+            if (!zones.isEmpty())
                map.put(region, zones);
          } catch (HttpResponseException e) {
             // TODO: this should be in retry handler, not here.

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/ec2/src/main/java/org/jclouds/ec2/util/IpPermissions.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/main/java/org/jclouds/ec2/util/IpPermissions.java b/apis/ec2/src/main/java/org/jclouds/ec2/util/IpPermissions.java
index 99e2524..5b26f48 100644
--- a/apis/ec2/src/main/java/org/jclouds/ec2/util/IpPermissions.java
+++ b/apis/ec2/src/main/java/org/jclouds/ec2/util/IpPermissions.java
@@ -41,7 +41,7 @@ public class IpPermissions extends IpPermission {
 
    protected IpPermissions(IpProtocol ipProtocol, int fromPort, int toPort,
          Multimap<String, String> userIdGroupPairs, Iterable<String> groupIds, Iterable<String> ipRanges) {
-      super(ipProtocol, fromPort, toPort, userIdGroupPairs, groupIds, userIdGroupPairs.size() == 0 ? ipRanges
+      super(ipProtocol, fromPort, toPort, userIdGroupPairs, groupIds, userIdGroupPairs.isEmpty() ? ipRanges
             : ImmutableSet.<String> of());
    }
 


[2/4] Prefer isEmpty() for collections rather than size()

Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/common/azure/src/main/java/org/jclouds/azure/storage/domain/AzureStorageError.java
----------------------------------------------------------------------
diff --git a/common/azure/src/main/java/org/jclouds/azure/storage/domain/AzureStorageError.java b/common/azure/src/main/java/org/jclouds/azure/storage/domain/AzureStorageError.java
index 9843fb9..ec57979 100644
--- a/common/azure/src/main/java/org/jclouds/azure/storage/domain/AzureStorageError.java
+++ b/common/azure/src/main/java/org/jclouds/azure/storage/domain/AzureStorageError.java
@@ -22,7 +22,7 @@ import com.google.common.collect.Maps;
 
 /**
  * When an Azure Storage request is in error, the client receives an error response.
- * 
+ *
  * @see <a href="http://msdn.microsoft.com/en-us/library/dd573365.aspx" />
  */
 public class AzureStorageError {
@@ -46,7 +46,7 @@ public class AzureStorageError {
          sb.append(", stringSigned='").append(stringSigned).append('\'');
       if (getSignature() != null)
          sb.append(", signature='").append(getSignature()).append('\'');
-      if (details.size() != 0)
+      if (!details.isEmpty())
          sb.append(", context='").append(details.toString()).append('\'').append('}');
       return sb.toString();
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/compute/src/main/java/org/jclouds/compute/domain/SecurityGroup.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/domain/SecurityGroup.java b/compute/src/main/java/org/jclouds/compute/domain/SecurityGroup.java
index 811a84d..7170f27 100644
--- a/compute/src/main/java/org/jclouds/compute/domain/SecurityGroup.java
+++ b/compute/src/main/java/org/jclouds/compute/domain/SecurityGroup.java
@@ -37,18 +37,18 @@ public class SecurityGroup extends ComputeMetadataImpl {
 
    private final Set<IpPermission> ipPermissions;
    private final String ownerId;
-   
+
    public SecurityGroup(String providerId, String name, String id, @Nullable Location location, URI uri,
                         Map<String, String> userMetadata, Set<String> tags,
                         Iterable<IpPermission> ipPermissions,
-                        @Nullable String ownerId) { 
+                        @Nullable String ownerId) {
       super(ComputeType.SECURITYGROUP, providerId, name, id, location, uri, userMetadata, tags);
       this.ipPermissions = ImmutableSet.copyOf(checkNotNull(ipPermissions, "ipPermissions"));
       this.ownerId = ownerId;
    }
 
    /**
-    * 
+    *
     * @return The set of @{link IpPermission}s for this security group
     */
    public Set<IpPermission> getIpPermissions() {
@@ -62,11 +62,11 @@ public class SecurityGroup extends ComputeMetadataImpl {
    public String getOwnerId() {
       return ownerId;
    }
-   
+
    @Override
    protected ToStringHelper string() {
       ToStringHelper helper = computeToStringPrefix();
-      if (ipPermissions.size() > 0)
+      if (!ipPermissions.isEmpty())
          helper.add("ipPermissions", ipPermissions);
       return addComputeToStringSuffix(helper);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/compute/src/main/java/org/jclouds/compute/domain/internal/ComputeMetadataImpl.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/domain/internal/ComputeMetadataImpl.java b/compute/src/main/java/org/jclouds/compute/domain/internal/ComputeMetadataImpl.java
index 74882d3..15657f2 100644
--- a/compute/src/main/java/org/jclouds/compute/domain/internal/ComputeMetadataImpl.java
+++ b/compute/src/main/java/org/jclouds/compute/domain/internal/ComputeMetadataImpl.java
@@ -105,20 +105,20 @@ public class ComputeMetadataImpl extends ResourceMetadataImpl<ComputeType> imple
    public int hashCode() {
       return Objects.hashCode(super.hashCode(), id);
    }
-   
+
    protected ToStringHelper computeToStringPrefix() {
       return MoreObjects.toStringHelper("").omitNullValues().add("id", getId()).add("providerId", getProviderId())
                .add("uri", getUri()).add("name", getName()).add("uri", getUri()).add("location", getLocation());
    }
 
    protected ToStringHelper addComputeToStringSuffix(ToStringHelper helper) {
-      if (getTags().size() > 0)
+      if (!getTags().isEmpty())
          helper.add("tags", getTags());
-      if (getUserMetadata().size() > 0)
+      if (!getUserMetadata().isEmpty())
          helper.add("userMetadata", getUserMetadata());
       return helper;
    }
-   
+
    protected ToStringHelper string() {
       return addComputeToStringSuffix(computeToStringPrefix());
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/compute/src/main/java/org/jclouds/compute/domain/internal/HardwareImpl.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/domain/internal/HardwareImpl.java b/compute/src/main/java/org/jclouds/compute/domain/internal/HardwareImpl.java
index 40b3cf3..e554241 100644
--- a/compute/src/main/java/org/jclouds/compute/domain/internal/HardwareImpl.java
+++ b/compute/src/main/java/org/jclouds/compute/domain/internal/HardwareImpl.java
@@ -109,7 +109,7 @@ public class HardwareImpl extends ComputeMetadataImpl implements Hardware {
    protected ToStringHelper string() {
       ToStringHelper helper = computeToStringPrefix();
       helper.add("processors", processors).add("ram", ram);
-      if (volumes.size() > 0)
+      if (!volumes.isEmpty())
          helper.add("volumes", volumes);
       helper.add("hypervisor", hypervisor);
       helper.add("supportsImage", supportsImage);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/compute/src/main/java/org/jclouds/compute/domain/internal/NodeMetadataImpl.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/domain/internal/NodeMetadataImpl.java b/compute/src/main/java/org/jclouds/compute/domain/internal/NodeMetadataImpl.java
index e2ed8fc..cf4eae8 100644
--- a/compute/src/main/java/org/jclouds/compute/domain/internal/NodeMetadataImpl.java
+++ b/compute/src/main/java/org/jclouds/compute/domain/internal/NodeMetadataImpl.java
@@ -167,9 +167,9 @@ public class NodeMetadataImpl extends ComputeMetadataImpl implements NodeMetadat
       ToStringHelper helper = computeToStringPrefix();
       helper.add("group", getGroup()).add("imageId", getImageId()).add("os", getOperatingSystem())
                .add("status", formatStatus(this)).add("loginPort", getLoginPort()).add("hostname", getHostname());
-      if (getPrivateAddresses().size() > 0)
+      if (!getPrivateAddresses().isEmpty())
          helper.add("privateAddresses", getPrivateAddresses());
-      if (getPublicAddresses().size() > 0)
+      if (!getPublicAddresses().isEmpty())
          helper.add("publicAddresses", getPublicAddresses());
       helper.add("hardware", getHardware()).add("loginUser", credentials != null ? credentials.identity : null);
       return addComputeToStringSuffix(helper);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/compute/src/main/java/org/jclouds/compute/domain/internal/TemplateBuilderImpl.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/domain/internal/TemplateBuilderImpl.java b/compute/src/main/java/org/jclouds/compute/domain/internal/TemplateBuilderImpl.java
index 83ba8e7..944d38f 100644
--- a/compute/src/main/java/org/jclouds/compute/domain/internal/TemplateBuilderImpl.java
+++ b/compute/src/main/java/org/jclouds/compute/domain/internal/TemplateBuilderImpl.java
@@ -164,7 +164,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
          }
 
       };
-   } 
+   }
 
    final Predicate<ComputeMetadata> locationPredicate = new NullEqualToIsParentOrIsGrandparentOfCurrentLocation(new Supplier<Location>() {
 
@@ -172,7 +172,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
       public Location get() {
          return location;
       }
-      
+
    });
 
    private final Predicate<Image> idPredicate = new Predicate<Image>() {
@@ -345,7 +345,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
          return "imageName(" + imageName + ")";
       }
    };
-   
+
    private final Predicate<Image> imageDescriptionPredicate = new Predicate<Image>() {
       @Override
       public boolean apply(Image input) {
@@ -366,7 +366,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
          return "imageDescription(" + imageDescription + ")";
       }
    };
-   
+
    private final Predicate<Hardware> hardwareIdPredicate = new Predicate<Hardware>() {
       @Override
       public boolean apply(Hardware input) {
@@ -386,7 +386,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
          return "hardwareId(" + hardwareId + ")";
       }
    };
-   
+
    private final Predicate<Hardware> hypervisorPredicate = new Predicate<Hardware>() {
       @Override
       public boolean apply(Hardware input) {
@@ -471,7 +471,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
             : Predicates.<Hardware> and(predicates);
       return hardwarePredicate;
    }
-   
+
    static final Ordering<Hardware> DEFAULT_SIZE_ORDERING = new Ordering<Hardware>() {
       public int compare(Hardware left, Hardware right) {
          return ComparisonChain.start().compare(getCores(left), getCores(right)).compare(left.getRam(), right.getRam())
@@ -651,9 +651,9 @@ public class TemplateBuilderImpl implements TemplateBuilder {
       public String apply(Image arg0) {
          return arg0.getId();
       }
-      
+
    };
-   
+
 
    private static final Function<Hardware, String> hardwareToId = new Function<Hardware, String>() {
 
@@ -661,7 +661,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
       public String apply(Hardware arg0) {
          return arg0.getId();
       }
-      
+
    };
    /**
     * {@inheritDoc}
@@ -679,9 +679,9 @@ public class TemplateBuilderImpl implements TemplateBuilder {
          options = optionsProvider.get();
       logger.debug(">> searching params(%s)", this);
       Set<? extends Image> images = getImages();
-      checkState(images.size() > 0, "no images present!");
+      checkState(!images.isEmpty(), "no images present!");
       Set<? extends Hardware> hardwaresToSearch = hardwares.get();
-      checkState(hardwaresToSearch.size() > 0, "no hardware profiles present!");
+      checkState(!hardwaresToSearch.isEmpty(), "no hardware profiles present!");
 
       Image image = null;
       if (imageId != null) {
@@ -689,19 +689,19 @@ public class TemplateBuilderImpl implements TemplateBuilder {
          if (currentLocationWiderThan(image.getLocation()))
             this.location = image.getLocation();
       }
-      
+
       Hardware hardware = null;
       if (hardwareId != null) {
          hardware = findHardwareWithId(hardwaresToSearch);
          if (currentLocationWiderThan(hardware.getLocation()))
             this.location = hardware.getLocation();
       }
-      
+
       // if the user hasn't specified a location id, or an image or hardware
       // with location, let's search scoped to the implicit one
       if (location == null)
          location = defaultLocation.get();
-      
+
       if (image == null) {
          Iterable<? extends Image> supportedImages = findSupportedImages(images);
          if (hardware == null)
@@ -776,7 +776,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
 
    protected Hardware resolveHardware(Set<? extends Hardware> hardwarel, final Iterable<? extends Image> images) {
       Ordering<Hardware> hardwareOrdering = hardwareSorter();
-      
+
       Iterable<Predicate<Image>> supportsImagePredicates = Iterables.transform(hardwarel,
                new Function<Hardware, Predicate<Image>>() {
 
@@ -786,7 +786,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
                   }
 
                });
-      
+
       Predicate<Image> supportsImagePredicate = Iterables.size(supportsImagePredicates) == 1 ? Iterables
                .getOnlyElement(supportsImagePredicates) : Predicates.<Image>or(supportsImagePredicates);
 
@@ -823,7 +823,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
    }
 
    /**
-    * 
+    *
     * @param hardware
     * @param supportedImages
     * @throws NoSuchElementException
@@ -855,7 +855,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
          return null;
       }
    }
-   
+
    /**
     * Like Ordering, but handle the case where there are multiple valid maximums
     */
@@ -910,7 +910,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
          osPredicates.add(os64BitPredicate);
       if (osArch != null)
          osPredicates.add(osArchPredicate);
-      if (osPredicates.size() > 0)
+      if (!osPredicates.isEmpty())
          predicates.add(new Predicate<Image>() {
 
             @Override
@@ -976,7 +976,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
       this.imageDescription = descriptionRegex;
       return this;
    }
-   
+
    /**
     * {@inheritDoc}
     */
@@ -1076,7 +1076,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
       this.hypervisor = null;
       return this;
    }
-   
+
    /**
     * {@inheritDoc}
     */
@@ -1085,7 +1085,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
       this.hypervisor = hypervisor;
       return this;
    }
-   
+
    /**
     * {@inheritDoc}
     */
@@ -1099,8 +1099,8 @@ public class TemplateBuilderImpl implements TemplateBuilder {
    @VisibleForTesting
    boolean nothingChangedExceptOptions() {
       return osFamily == null && location == null && imageId == null && hardwareId == null && hypervisor == null
-            && osName == null && imagePredicate == null && imageChooser == null && osDescription == null 
-            && imageVersion == null && osVersion == null && osArch == null && os64Bit == null && imageName == null 
+            && osName == null && imagePredicate == null && imageChooser == null && osDescription == null
+            && imageVersion == null && osVersion == null && osArch == null && os64Bit == null && imageName == null
             && imageDescription == null && minCores == 0 && minRam == 0 && minDisk == 0 && !biggest && !fastest;
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java b/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java
index 0f620c3..3ba198c 100644
--- a/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java
+++ b/compute/src/main/java/org/jclouds/compute/internal/BaseComputeService.java
@@ -218,7 +218,7 @@ public class BaseComputeService implements ComputeService {
       Function<NodeMetadata, NodeMetadata> fn = persistNodeCredentials.always(template.getOptions().getRunScript());
       badNodes = Maps2.transformKeys(badNodes, fn);
       goodNodes = ImmutableSet.copyOf(Iterables.transform(goodNodes, fn));
-      if (executionExceptions.size() > 0 || badNodes.size() > 0) {
+      if (!executionExceptions.isEmpty() || !badNodes.isEmpty()) {
          throw new RunNodesException(group, count, template, goodNodes, executionExceptions, badNodes);
       }
       return goodNodes;
@@ -270,13 +270,13 @@ public class BaseComputeService implements ComputeService {
 
             }, userExecutor, null, logger, "destroyNodesMatching(" + filter + ")"));
       logger.debug("<< destroyed(%d)", destroyNodes.size());
-      
+
       cleanUpIncidentalResourcesOfDeadNodes(destroyNodes);
       return destroyNodes;
    }
 
    /**
-    * 
+    *
     * @param id
     * @return node that was deleted or null if it wasn't found
     */
@@ -298,7 +298,7 @@ public class BaseComputeService implements ComputeService {
             }
          }
       }, timeouts.nodeTerminated, 1000, MILLISECONDS);
-      
+
       boolean successful = tester.apply(id) && (node.get() == null || nodeTerminated.apply(node));
       if (successful)
          credentialStore.remove("node#" + id);
@@ -309,7 +309,7 @@ public class BaseComputeService implements ComputeService {
    protected void cleanUpIncidentalResourcesOfDeadNodes(Set<? extends NodeMetadata> deadNodes) {
       // no-op; to be overridden
    }
-   
+
    Iterable<? extends NodeMetadata> nodesMatchingFilterAndNotTerminated(Predicate<NodeMetadata> filter) {
       return filter(detailsOnAllNodes(), and(checkNotNull(filter, "filter"), not(TERMINATED)));
    }
@@ -321,7 +321,7 @@ public class BaseComputeService implements ComputeService {
    Iterable<? extends NodeMetadata> nodesMatchingFilterAndNotTerminatedExceptionIfNotFound(
          Predicate<NodeMetadata> filter) {
       Iterable<? extends NodeMetadata> nodes = nodesMatchingFilterAndNotTerminated(filter);
-      if (Iterables.size(nodes) == 0)
+      if (Iterables.isEmpty(nodes))
          throw new NoSuchElementException("no nodes matched filter: " + filter);
       return nodes;
    }
@@ -578,7 +578,7 @@ public class BaseComputeService implements ComputeService {
 
       Iterable<? extends RunScriptOnNode> scriptRunners = transformNodesIntoInitializedScriptRunners(
             nodesMatchingFilterAndNotTerminatedExceptionIfNotFound(filter), runScript, options, badNodes);
-      if (Iterables.size(scriptRunners) > 0) {
+      if (!Iterables.isEmpty(scriptRunners)) {
          for (RunScriptOnNode runner : scriptRunners) {
             responses.put(runner.getNode(), userExecutor.submit(new RunScriptOnNodeAndAddToGoodMapOrPutExceptionIntoBadMap(
                   runner, goodNodes, badNodes)));
@@ -594,7 +594,7 @@ public class BaseComputeService implements ComputeService {
       badNodes = Maps2.transformKeys(badNodes, fn);
       goodNodes = Maps2.transformKeys(goodNodes, fn);
 
-      if (exceptions.size() > 0 || badNodes.size() > 0) {
+      if (!exceptions.isEmpty() || !badNodes.isEmpty()) {
          throw new RunScriptOnNodesException(runScript, options, goodNodes, exceptions, badNodes);
       }
       return goodNodes;
@@ -649,7 +649,7 @@ public class BaseComputeService implements ComputeService {
    public ListenableFuture<ExecResponse> submitScriptOnNode(String id, String runScript, RunScriptOptions options) {
       return submitScriptOnNode(id, Statements.literal(checkNotNull(runScript, "runScript")), options);
    }
-   
+
    /**
     * {@inheritDoc}
     */
@@ -733,7 +733,7 @@ public class BaseComputeService implements ComputeService {
       }
 
    }
-   
+
    /**
     * {@inheritDoc}
     */

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/compute/src/main/java/org/jclouds/compute/options/TemplateOptions.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/options/TemplateOptions.java b/compute/src/main/java/org/jclouds/compute/options/TemplateOptions.java
index d7c6716..2a8b6d2 100644
--- a/compute/src/main/java/org/jclouds/compute/options/TemplateOptions.java
+++ b/compute/src/main/java/org/jclouds/compute/options/TemplateOptions.java
@@ -68,7 +68,7 @@ public class TemplateOptions extends RunScriptOptions implements Cloneable {
          to.inboundPorts(this.getInboundPorts());
       if (this.getRunScript() != null)
          to.runScript(this.getRunScript());
-      if (this.getGroups().size() > 0)
+      if (!this.getGroups().isEmpty())
          to.securityGroups(this.getGroups());
       if (this.getPrivateKey() != null)
          to.installPrivateKey(this.getPrivateKey());
@@ -76,9 +76,9 @@ public class TemplateOptions extends RunScriptOptions implements Cloneable {
          to.authorizePublicKey(this.getPublicKey());
       if (this.getPort() != -1)
          to.blockOnPort(this.getPort(), this.getSeconds());
-      if (this.getUserMetadata().size() > 0)
+      if (!this.getUserMetadata().isEmpty())
          to.userMetadata(this.getUserMetadata());
-      if (this.getTags().size() > 0)
+      if (!this.getTags().isEmpty())
          to.tags(getTags());
       if (!this.getNodeNames().isEmpty())
          to.nodeNames(getNodeNames());
@@ -353,7 +353,7 @@ public class TemplateOptions extends RunScriptOptions implements Cloneable {
    private static final Set<Integer> DEFAULT_INBOUND_PORTS = ImmutableSet.of(22);
 
    public static final TemplateOptions NONE = new ImmutableTemplateOptions(new TemplateOptions());
-   
+
    protected Set<Integer> inboundPorts = DEFAULT_INBOUND_PORTS;
 
    protected Statement script;
@@ -406,7 +406,7 @@ public class TemplateOptions extends RunScriptOptions implements Cloneable {
          toString.add("privateKeyPresent", true);
       if (!blockUntilRunning)
          toString.add("blockUntilRunning", blockUntilRunning);
-      if (tags.size() != 0)
+      if (!tags.isEmpty())
          toString.add("tags", tags);
       if (!nodeNames.isEmpty())
          toString.add("nodeNames", nodeNames);
@@ -465,16 +465,16 @@ public class TemplateOptions extends RunScriptOptions implements Cloneable {
    /**
     * This script will be executed as the root user upon system startup. This
     * script gets a prologue, so no #!/bin/bash required, path set up, etc
-    * 
+    *
     */
    public TemplateOptions runScript(String script) {
       return runScript(Statements.exec(script));
    }
-   
+
    /**
     * This script will be executed as the root user upon system startup. This
     * script gets a prologue, so no #!/bin/bash required, path set up, etc
-    * 
+    *
     */
    public TemplateOptions runScript(Statement script) {
       this.script = checkNotNull(script, "script");
@@ -682,7 +682,7 @@ public class TemplateOptions extends RunScriptOptions implements Cloneable {
          TemplateOptions options = new TemplateOptions();
          return options.runScript(script);
       }
-      
+
       /**
        * @see TemplateOptions#runScript(String)
        */
@@ -694,7 +694,7 @@ public class TemplateOptions extends RunScriptOptions implements Cloneable {
       /**
        * please use alternative that uses the {@link org.jclouds.io.Payload}
        * object
-       * 
+       *
        * @see org.jclouds.io.Payloads
        * @see #installPrivateKey(Payload)
        */
@@ -706,7 +706,7 @@ public class TemplateOptions extends RunScriptOptions implements Cloneable {
       /**
        * please use alternative that uses the {@link org.jclouds.io.Payload}
        * object
-       * 
+       *
        * @see #authorizePublicKey(String)
        */
       public static TemplateOptions authorizePublicKey(String rsaKey) {
@@ -736,13 +736,13 @@ public class TemplateOptions extends RunScriptOptions implements Cloneable {
       }
 
    }
-   
+
    /**
     * <h4>Note</h4> As of version 1.1.0, this option is incompatible with
     * {@link TemplateOptions#runScript(Statement)} and
     * {@link RunScriptOptions#blockOnComplete(boolean)}, as all current
     * implementations utilize ssh in order to execute scripts.
-    * 
+    *
     * @param blockUntilRunning
     *           (default true) whether to block until the nodes in this template
     *           are in {@link Status#RUNNING} state
@@ -755,7 +755,7 @@ public class TemplateOptions extends RunScriptOptions implements Cloneable {
    }
 
    /**
-    * 
+    *
     * @param userMetadata
     *           user-defined metadata to assign to this server
     */
@@ -765,7 +765,7 @@ public class TemplateOptions extends RunScriptOptions implements Cloneable {
    }
 
    /**
-    * 
+    *
     * @param key
     *           key to place into the metadata map
     * @param value
@@ -782,7 +782,7 @@ public class TemplateOptions extends RunScriptOptions implements Cloneable {
    public Map<String, String> getUserMetadata() {
       return userMetadata;
    }
-   
+
    @Override
    public TemplateOptions blockOnPort(int port, int seconds) {
       return TemplateOptions.class.cast(super.blockOnPort(port, seconds));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/compute/src/main/java/org/jclouds/compute/stub/config/StubComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/stub/config/StubComputeServiceAdapter.java b/compute/src/main/java/org/jclouds/compute/stub/config/StubComputeServiceAdapter.java
index 7484d3f..0823fd5 100644
--- a/compute/src/main/java/org/jclouds/compute/stub/config/StubComputeServiceAdapter.java
+++ b/compute/src/main/java/org/jclouds/compute/stub/config/StubComputeServiceAdapter.java
@@ -141,7 +141,7 @@ public class StubComputeServiceAdapter implements JCloudsNativeComputeServiceAda
       NodeMetadata node = builder.build();
       nodes.put(node.getId(), node);
 
-      if (template.getOptions().getGroups().size() > 0) {
+      if (!template.getOptions().getGroups().isEmpty()) {
          final String groupId = Iterables.getFirst(template.getOptions().getGroups(), "0");
          Optional<SecurityGroup> secGroup = Iterables.tryFind(securityGroupExtension.get().listSecurityGroups(),
                                                               new Predicate<SecurityGroup>() {
@@ -155,7 +155,7 @@ public class StubComputeServiceAdapter implements JCloudsNativeComputeServiceAda
             groupsForNodes.put(node.getId(), secGroup.get());
          }
       }
-      
+
       setStateOnNodeAfterDelay(Status.RUNNING, node, 100);
       return new NodeWithInitialCredentials(node);
    }
@@ -184,12 +184,12 @@ public class StubComputeServiceAdapter implements JCloudsNativeComputeServiceAda
          }
       return images.build();
    }
-   
+
    @Override
    public Image getImage(String id) {
       return find(listImages(), ImagePredicates.idEquals(id), null);
    }
-   
+
    @Override
    public Iterable<NodeMetadata> listNodes() {
       return nodes.values();
@@ -219,7 +219,7 @@ public class StubComputeServiceAdapter implements JCloudsNativeComputeServiceAda
       setStateOnNodeAfterDelay(Status.PENDING, node, 0);
       setStateOnNodeAfterDelay(Status.TERMINATED, node, 50);
       groupsForNodes.removeAll(id);
-      
+
       ioExecutor.execute(new Runnable() {
 
          @Override

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/compute/src/main/java/org/jclouds/compute/stub/extensions/StubSecurityGroupExtension.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/stub/extensions/StubSecurityGroupExtension.java b/compute/src/main/java/org/jclouds/compute/stub/extensions/StubSecurityGroupExtension.java
index 9cbe6e6..9f65647 100644
--- a/compute/src/main/java/org/jclouds/compute/stub/extensions/StubSecurityGroupExtension.java
+++ b/compute/src/main/java/org/jclouds/compute/stub/extensions/StubSecurityGroupExtension.java
@@ -61,7 +61,7 @@ public class StubSecurityGroupExtension implements SecurityGroupExtension {
    public StubSecurityGroupExtension(ConcurrentMap<String, SecurityGroup> groups,
                                      @Named(Constants.PROPERTY_IO_WORKER_THREADS) ListeningExecutorService ioExecutor,
                                      Supplier<Location> location,
-                                     @Named("GROUP_ID") Provider<Integer> groupIdProvider, 
+                                     @Named("GROUP_ID") Provider<Integer> groupIdProvider,
                                      JustProvider locationSupplier,
                                      Multimap<String, SecurityGroup> groupsForNodes) {
       this.groups = groups;
@@ -96,7 +96,7 @@ public class StubSecurityGroupExtension implements SecurityGroupExtension {
    public SecurityGroup getSecurityGroupById(String id) {
       return groups.get(id);
    }
-   
+
    @Override
    public SecurityGroup createSecurityGroup(String name, Location location) {
       SecurityGroupBuilder builder = new SecurityGroupBuilder();
@@ -149,13 +149,13 @@ public class StubSecurityGroupExtension implements SecurityGroupExtension {
       ipBuilder.ipProtocol(protocol);
       ipBuilder.fromPort(startPort);
       ipBuilder.toPort(endPort);
-      if (tenantIdGroupNamePairs.size() > 0) {
+      if (!tenantIdGroupNamePairs.isEmpty()) {
          ipBuilder.tenantIdGroupNamePairs(tenantIdGroupNamePairs);
       }
-      if (Iterables.size(ipRanges) > 0) {
+      if (!Iterables.isEmpty(ipRanges)) {
          ipBuilder.cidrBlocks(ipRanges);
       }
-      if (Iterables.size(groupIds) > 0) {
+      if (!Iterables.isEmpty(groupIds)) {
          ipBuilder.groupIds(groupIds);
       }
 
@@ -175,7 +175,7 @@ public class StubSecurityGroupExtension implements SecurityGroupExtension {
 
       return newGroup;
    }
-      
+
    @Override
    public SecurityGroup removeIpPermission(IpPermission ipPermission, SecurityGroup group) {
       SecurityGroupBuilder builder = SecurityGroupBuilder.fromSecurityGroup(checkNotNull(group, "group"));
@@ -183,7 +183,7 @@ public class StubSecurityGroupExtension implements SecurityGroupExtension {
       builder.ipPermissions();
 
       builder.ipPermissions(filter(group.getIpPermissions(), not(equalTo(ipPermission))));
-                            
+
       SecurityGroup newGroup = builder.build();
 
       if (groups.containsKey(newGroup.getId())) {
@@ -194,7 +194,7 @@ public class StubSecurityGroupExtension implements SecurityGroupExtension {
 
       return newGroup;
    }
-   
+
 
    @Override
    public SecurityGroup removeIpPermission(IpProtocol protocol, int startPort, int endPort,
@@ -206,13 +206,13 @@ public class StubSecurityGroupExtension implements SecurityGroupExtension {
       ipBuilder.ipProtocol(protocol);
       ipBuilder.fromPort(startPort);
       ipBuilder.toPort(endPort);
-      if (tenantIdGroupNamePairs.size() > 0) {
+      if (!tenantIdGroupNamePairs.isEmpty()) {
          ipBuilder.tenantIdGroupNamePairs(tenantIdGroupNamePairs);
       }
-      if (Iterables.size(ipRanges) > 0) {
+      if (!Iterables.isEmpty(ipRanges)) {
          ipBuilder.cidrBlocks(ipRanges);
       }
-      if (Iterables.size(groupIds) > 0) {
+      if (!Iterables.isEmpty(groupIds)) {
          ipBuilder.groupIds(groupIds);
       }
 
@@ -223,7 +223,7 @@ public class StubSecurityGroupExtension implements SecurityGroupExtension {
       builder.ipPermissions();
 
       builder.ipPermissions(filter(group.getIpPermissions(), not(equalTo(perm))));
-      
+
       SecurityGroup newGroup = builder.build();
 
       if (groups.containsKey(newGroup.getId())) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/compute/src/main/java/org/jclouds/compute/util/ComputeServiceUtils.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/util/ComputeServiceUtils.java b/compute/src/main/java/org/jclouds/compute/util/ComputeServiceUtils.java
index 89e7362..0cddf5a 100644
--- a/compute/src/main/java/org/jclouds/compute/util/ComputeServiceUtils.java
+++ b/compute/src/main/java/org/jclouds/compute/util/ComputeServiceUtils.java
@@ -61,7 +61,7 @@ import com.google.common.collect.TreeRangeSet;
 import com.google.common.primitives.Ints;
 
 public class ComputeServiceUtils {
-   
+
    /**
     * status as a string which optionally includes the backend status
     */
@@ -70,12 +70,12 @@ public class ComputeServiceUtils {
          return resource.getStatus().toString();
       return String.format("%s[%s]", resource.getStatus(), resource.getBackendStatus());
    }
-   
+
    public static final Pattern DELIMITED_BY_HYPHEN_ENDING_IN_HYPHEN_HEX = Pattern.compile("(.+)-[0-9a-f]+");
 
    /**
     * build a shell script that invokes the contents of the http request in bash.
-    * 
+    *
     * @return a shell script that will invoke the http request
     */
    public static Statement execHttpResponse(HttpRequest request) {
@@ -88,7 +88,7 @@ public class ComputeServiceUtils {
 
    /**
     * build a shell script that invokes the contents of the http request in bash.
-    * 
+    *
     * @return a shell script that will invoke the http request
     */
    public static Statement extractTargzIntoDirectory(HttpRequest targz, String directory) {
@@ -102,7 +102,7 @@ public class ComputeServiceUtils {
 
    /**
     * build a shell script that invokes the contents of the http request in bash.
-    * 
+    *
     * @return a shell script that will invoke the http request
     */
    public static Statement extractZipIntoDirectory(HttpRequest zip, String directory) {
@@ -177,7 +177,7 @@ public class ComputeServiceUtils {
          }
       });
    }
-   
+
    /**
     * For cloud apis that have a pattern of using empty strings as tags, return a map that contains
     * that.
@@ -204,7 +204,7 @@ public class ComputeServiceUtils {
    public static Map<String, String> metadataAndTagsAsCommaDelimitedValue(TemplateOptions options) {
       Builder<String, String> builder = ImmutableMap.<String, String> builder();
       builder.putAll(options.getUserMetadata());
-      if (options.getTags().size() > 0)
+      if (!options.getTags().isEmpty())
          builder.put("jclouds_tags", Joiner.on(',').join(options.getTags()));
       return builder.build();
    }
@@ -266,11 +266,11 @@ public class ComputeServiceUtils {
       Set<Integer> sortedPorts = ImmutableSortedSet.copyOf(Ints.asList(ports));
 
       RangeSet<Integer> ranges = TreeRangeSet.create();
-      
+
       for (Integer port : sortedPorts) {
          ranges.add(Range.closedOpen(port, port + 1));
       }
-      
+
       Map<Integer, Integer> portRanges = Maps.newHashMap();
 
       for (Range<Integer> r : ranges.asRanges()) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java
----------------------------------------------------------------------
diff --git a/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java b/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java
index 82a0ea2..a883328 100644
--- a/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java
+++ b/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java
@@ -156,7 +156,7 @@ public abstract class BaseComputeServiceLiveTest extends BaseComputeServiceConte
       // wait a maximum of 60 seconds for port 8080 to open.
       openSocketFinder = context.utils().injector().getInstance(OpenSocketFinder.class);
    }
-   
+
    @Override
    protected void initializeContext() {
       super.initializeContext();
@@ -203,7 +203,7 @@ public abstract class BaseComputeServiceLiveTest extends BaseComputeServiceConte
       Template defaultTemplate = view.getComputeService().templateBuilder().build();
       assertEquals(view.getComputeService().getImage(defaultTemplate.getImage().getId()), defaultTemplate.getImage());
    }
-   
+
    // since surefire and eclipse don't otherwise guarantee the order, we are
    // starting this one alphabetically before create2nodes..
    @Test(enabled = true, dependsOnMethods = { "testCompareSizes" })
@@ -476,7 +476,7 @@ public abstract class BaseComputeServiceLiveTest extends BaseComputeServiceConte
          }
       }
    }
-   
+
    @Test(enabled = true, dependsOnMethods = "testCreateAnotherNodeWithANewContextToEnsureSharedMemIsntRequired")
    public void testCredentialsCache() throws Exception {
       initializeContext();
@@ -606,12 +606,12 @@ public abstract class BaseComputeServiceLiveTest extends BaseComputeServiceConte
    public void testListNodesByIds() throws Exception {
       Set<String> nodeIds = copyOf(transform(nodes,
          new Function<NodeMetadata, String>() {
-                                                
+
             @Override
             public String apply(NodeMetadata from) {
                return from.getId();
             }
-            
+
          }));
 
       SortedSet<NodeMetadata> listedNodes = ImmutableSortedSet.copyOf(client.listNodesByIds(nodeIds));
@@ -635,7 +635,7 @@ public abstract class BaseComputeServiceLiveTest extends BaseComputeServiceConte
          // assert nodeMetadata.getName() != null : nodeMetadata;
          if (nodeMetadata.getStatus() == Status.RUNNING) {
             assert nodeMetadata.getPublicAddresses() != null : nodeMetadata;
-            assert nodeMetadata.getPublicAddresses().size() > 0 || nodeMetadata.getPrivateAddresses().size() > 0 : nodeMetadata;
+            assert !nodeMetadata.getPublicAddresses().isEmpty() || !nodeMetadata.getPrivateAddresses().isEmpty() : nodeMetadata;
             assertNotNull(nodeMetadata.getPrivateAddresses());
          }
       }
@@ -674,7 +674,7 @@ public abstract class BaseComputeServiceLiveTest extends BaseComputeServiceConte
       ExecResponse exec = client.runScriptOnNode(node.getId(), process, runAsRoot(false).wrapInInitScript(false));
       stats.backgroundProcessMilliseconds = watch.elapsed(TimeUnit.MILLISECONDS);
       watch.reset().start();
-      
+
       HostAndPort socket = null;
       try {
          socket = openSocketFinder.findOpenSocketOnNode(node, 8080, 600, TimeUnit.SECONDS);
@@ -709,7 +709,7 @@ public abstract class BaseComputeServiceLiveTest extends BaseComputeServiceConte
    protected void createAndRunAServiceInGroup(String group) throws RunNodesException {
       // note that some cloud providers do not support mixed case tag names
       ImmutableMap<String, String> userMetadata = ImmutableMap.<String, String> of("test", group);
-      
+
       ImmutableSet<String> tags = ImmutableSet. of(group);
       Stopwatch watch = Stopwatch.createStarted();
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/collect/AdvanceUntilEmptyIterable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/collect/AdvanceUntilEmptyIterable.java b/core/src/main/java/org/jclouds/collect/AdvanceUntilEmptyIterable.java
index b78d953..0ae224f 100644
--- a/core/src/main/java/org/jclouds/collect/AdvanceUntilEmptyIterable.java
+++ b/core/src/main/java/org/jclouds/collect/AdvanceUntilEmptyIterable.java
@@ -31,7 +31,7 @@ import com.google.common.collect.UnmodifiableIterator;
 
 /**
  * continues to supply iterables until the last was empty
- * 
+ *
  * @param <E>
  */
 @Beta
@@ -40,7 +40,7 @@ public class AdvanceUntilEmptyIterable<E> extends FluentIterable<FluentIterable<
    public static <E> AdvanceUntilEmptyIterable<E> create(Supplier<FluentIterable<E>> nextIterable) {
       return new AdvanceUntilEmptyIterable<E>(nextIterable);
    }
-   
+
    private final AdvanceUntilEmptyIterator<E> iterator;
 
    protected AdvanceUntilEmptyIterable(Supplier<FluentIterable<E>> nextIterable) {
@@ -73,7 +73,7 @@ public class AdvanceUntilEmptyIterable<E> extends FluentIterable<FluentIterable<
             } finally {
                unread = false;
             }
-         else if (current.size() > 0)
+         else if (!current.isEmpty())
             return current = nextIterable.get();
          else
             return endOfData();
@@ -108,17 +108,17 @@ public class AdvanceUntilEmptyIterable<E> extends FluentIterable<FluentIterable<
          return MoreObjects.toStringHelper("").omitNullValues().add("current", current).add("unread", unread).toString();
       }
    }
-   
+
    /**
     * Combines all the pages into a single unmodifiable iterable. ex.
-    * 
+    *
     * <pre>
     * FluentIterable<StorageMetadata> blobs = blobstore.list(...).concat();
     * for (StorageMetadata blob : blobs) {
     *     process(blob);
     * }
     * </pre>
-    * 
+    *
     * @see Iterators#concat
     */
    public FluentIterable<E> concat() {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/collect/internal/Arg0ToPagedIterable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/collect/internal/Arg0ToPagedIterable.java b/core/src/main/java/org/jclouds/collect/internal/Arg0ToPagedIterable.java
index c704400..55abe54 100644
--- a/core/src/main/java/org/jclouds/collect/internal/Arg0ToPagedIterable.java
+++ b/core/src/main/java/org/jclouds/collect/internal/Arg0ToPagedIterable.java
@@ -34,7 +34,7 @@ public abstract class Arg0ToPagedIterable<T, I extends Arg0ToPagedIterable<T, I>
 
    @Override
    protected Function<Object, IterableWithMarker<T>> markerToNextForArgs(List<Object> args) {
-      Optional<Object> arg0 = Optional.fromNullable(args.size() > 0 ? args.get(0) : null);
+      Optional<Object> arg0 = Optional.fromNullable(!args.isEmpty() ? args.get(0) : null);
       return markerToNextForArg0(arg0);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/collect/internal/CallerArg0ToPagedIterable.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/collect/internal/CallerArg0ToPagedIterable.java b/core/src/main/java/org/jclouds/collect/internal/CallerArg0ToPagedIterable.java
index f80c00f..ce92b43 100644
--- a/core/src/main/java/org/jclouds/collect/internal/CallerArg0ToPagedIterable.java
+++ b/core/src/main/java/org/jclouds/collect/internal/CallerArg0ToPagedIterable.java
@@ -43,7 +43,7 @@ public abstract class CallerArg0ToPagedIterable<T, I extends CallerArg0ToPagedIt
          return PagedIterables.of(input);
 
       Optional<String> arg0Option = Optional.absent();
-      if (request.getCaller().get().getArgs().size() > 0) {
+      if (!request.getCaller().get().getArgs().isEmpty()) {
          Object arg0 = request.getCaller().get().getArgs().get(0);
          if (arg0 != null)
             arg0Option = Optional.of(arg0.toString());

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/concurrent/FutureIterables.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/concurrent/FutureIterables.java b/core/src/main/java/org/jclouds/concurrent/FutureIterables.java
index f28ea64..e2d049d 100644
--- a/core/src/main/java/org/jclouds/concurrent/FutureIterables.java
+++ b/core/src/main/java/org/jclouds/concurrent/FutureIterables.java
@@ -52,15 +52,15 @@ import com.google.inject.Inject;
  */
 @Beta
 public class FutureIterables {
-   
+
    @Inject(optional = true)
    @Named(Constants.PROPERTY_MAX_RETRIES)
    private static int maxRetries = 5;
-   
+
    @Inject(optional = true)
    @Named(Constants.PROPERTY_RETRY_DELAY_START)
    private static long delayStart = 50L;
-   
+
    @Inject(optional = true)
    private static BackoffLimitedRetryHandler retryHandler = BackoffLimitedRetryHandler.INSTANCE;
 
@@ -69,7 +69,7 @@ public class FutureIterables {
                String logPrefix) {
       return transformParallel(fromIterable, function, exec, maxTime, logger, logPrefix, retryHandler, maxRetries);
    }
-   
+
    @SuppressWarnings("unchecked")
    public static <F, T> Iterable<T> transformParallel(Iterable<F> fromIterable,
          Function<? super F, ListenableFuture<? extends T>> function, ListeningExecutorService exec, @Nullable Long maxTime, Logger logger,
@@ -77,7 +77,7 @@ public class FutureIterables {
       Map<F, Exception> exceptions = newHashMap();
       Map<F, ListenableFuture<? extends T>> responses = newHashMap();
       for (int i = 0; i < maxRetries; i++) {
-         
+
          for (F from : fromIterable) {
             ListenableFuture<? extends T> to = function.apply(from);
             responses.put(from, to);
@@ -87,7 +87,7 @@ public class FutureIterables {
          } catch (TimeoutException te) {
             throw propagate(te);
          }
-         if (exceptions.size() > 0 && !any(exceptions.values(), containsThrowable(AuthorizationException.class))) {
+         if (!exceptions.isEmpty() && !any(exceptions.values(), containsThrowable(AuthorizationException.class))) {
             fromIterable = exceptions.keySet();
             retryHandler.imposeBackoffExponentialDelay(delayStart, 2, i + 1, maxRetries,
                   String.format("error %s: %s: %s", logPrefix, fromIterable, exceptions));
@@ -96,18 +96,18 @@ public class FutureIterables {
          }
       }
       //make sure we propagate any authorization exception so that we don't lock out accounts
-      if (exceptions.size() > 0)
+      if (!exceptions.isEmpty())
          return propagateAuthorizationOrOriginalException(new TransformParallelException(Map.class.cast(responses),
                exceptions, logPrefix));
-      
+
       return unwrap(responses.values());
    }
-   
+
    public static <F> Map<F, Exception> awaitCompletion(Map<F, ? extends ListenableFuture<?>> responses,
          ListeningExecutorService exec, @Nullable Long maxTime, final Logger logger, final String logPrefix)
          throws TimeoutException {
       final ConcurrentMap<F, Exception> errorMap = newConcurrentMap();
-      if (responses.size() == 0)
+      if (responses.isEmpty())
          return errorMap;
       final int total = responses.size();
       final CountDownLatch doneSignal = new CountDownLatch(total);
@@ -116,7 +116,7 @@ public class FutureIterables {
       final long start = System.currentTimeMillis();
       for (final Entry<F, ? extends ListenableFuture<?>> future : responses.entrySet()) {
          future.getValue().addListener(new Runnable() {
-            
+
             @Override
             public void run() {
                try {
@@ -130,7 +130,7 @@ public class FutureIterables {
 	               doneSignal.countDown();
                }
             }
-            
+
             @Override
             public String toString() {
                return "callGetOnFuture(" + future.getKey() + "," + future.getValue() + ")";
@@ -164,7 +164,7 @@ public class FutureIterables {
       }
       return errorMap;
    }
-   
+
    private static <T> Iterable<T> unwrap(Iterable<ListenableFuture<? extends T>> values) {
       return transform(values, new Function<ListenableFuture<? extends T>, T>() {
          @Override
@@ -178,20 +178,20 @@ public class FutureIterables {
             }
             return null;
          }
-         
+
          @Override
          public String toString() {
             return "callGetOnFuture()";
          }
       });
    }
-   
+
    private static void logException(Logger logger, String logPrefix, int total, int complete, int errors, long start,
          Exception e) {
       String message = message(logPrefix, total, complete, errors, start);
       logger.error(e, message);
    }
-   
+
    private static String message(String prefix, int size, int complete, int errors, long start) {
       return String.format("%s, completed: %d/%d, errors: %d, rate: %dms/op", prefix, complete, size, errors,
             (long) ((System.currentTimeMillis() - start) / ((double) size)));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/concurrent/config/ExecutorServiceModule.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/concurrent/config/ExecutorServiceModule.java b/core/src/main/java/org/jclouds/concurrent/config/ExecutorServiceModule.java
index ac1359b..dd7dd08 100644
--- a/core/src/main/java/org/jclouds/concurrent/config/ExecutorServiceModule.java
+++ b/core/src/main/java/org/jclouds/concurrent/config/ExecutorServiceModule.java
@@ -44,9 +44,9 @@ import com.google.inject.Provides;
 
 /**
  * Configures {@link ListeningExecutorService}.
- * 
+ *
  * Note that this uses threads.
- * 
+ *
  * <p>
  * This extends the underlying Future to expose a description (the task's toString) and the submission context (stack
  * trace). The submission stack trace is appended to relevant stack traces on exceptions that are returned, so the user
@@ -68,7 +68,7 @@ public class ExecutorServiceModule extends AbstractModule {
       @Override
       public void close() throws IOException {
          List<Runnable> runnables = service.shutdownNow();
-         if (runnables.size() > 0)
+         if (!runnables.isEmpty())
             logger.warn("when shutting down executor %s, runnables outstanding: %s", service, runnables);
       }
    }
@@ -80,12 +80,12 @@ public class ExecutorServiceModule extends AbstractModule {
       this.userExecutorFromConstructor = null;
       this.ioExecutorFromConstructor = null;
    }
-   
+
    public ExecutorServiceModule(@Named(PROPERTY_USER_THREADS) ExecutorService userExecutor,
          @Named(PROPERTY_IO_WORKER_THREADS) ExecutorService ioExecutor) {
       this(listeningDecorator(userExecutor), listeningDecorator(ioExecutor));
    }
-   
+
    public ExecutorServiceModule(@Named(PROPERTY_USER_THREADS) ListeningExecutorService userExecutor,
          @Named(PROPERTY_IO_WORKER_THREADS) ListeningExecutorService ioExecutor) {
       this.userExecutorFromConstructor = WithSubmissionTrace.wrap(userExecutor);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/domain/internal/LocationImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/domain/internal/LocationImpl.java b/core/src/main/java/org/jclouds/domain/internal/LocationImpl.java
index 5af7b2d..db290e3 100644
--- a/core/src/main/java/org/jclouds/domain/internal/LocationImpl.java
+++ b/core/src/main/java/org/jclouds/domain/internal/LocationImpl.java
@@ -62,9 +62,9 @@ public class LocationImpl implements Location {
             .add("description", description);
       if (parent != null)
          helper.add("parent", parent.getId());
-      if (iso3166Codes.size() > 0)
+      if (!iso3166Codes.isEmpty())
          helper.add("iso3166Codes", iso3166Codes);
-      if (metadata.size() > 0)
+      if (!metadata.isEmpty())
          helper.add("metadata", metadata);
       return helper.toString();
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/functions/JoinOnComma.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/functions/JoinOnComma.java b/core/src/main/java/org/jclouds/functions/JoinOnComma.java
index a6c4bef..e26329a 100644
--- a/core/src/main/java/org/jclouds/functions/JoinOnComma.java
+++ b/core/src/main/java/org/jclouds/functions/JoinOnComma.java
@@ -42,7 +42,7 @@ public class JoinOnComma implements Function<Object, String> {
       }
       checkArgument(o instanceof Iterable<?>, "you must pass an iterable or array");
       Iterable<?> toJoin = (Iterable<?>) o;
-      checkArgument(Iterables.size(toJoin) > 0, "you must pass an iterable or array with elements");
+      checkArgument(!Iterables.isEmpty(toJoin), "you must pass an iterable or array with elements");
       return Joiner.on(',').join(toJoin);
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/functions/OnlyElementOrNull.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/functions/OnlyElementOrNull.java b/core/src/main/java/org/jclouds/functions/OnlyElementOrNull.java
index 7f88ebb..49fba9b 100644
--- a/core/src/main/java/org/jclouds/functions/OnlyElementOrNull.java
+++ b/core/src/main/java/org/jclouds/functions/OnlyElementOrNull.java
@@ -26,7 +26,7 @@ public class OnlyElementOrNull<T> implements Function<Iterable<T>, T> {
 
    @Override
    public T apply(Iterable<T> arg0) {
-      if (arg0 == null || Iterables.size(arg0) == 0)
+      if (arg0 == null || Iterables.isEmpty(arg0))
          return null;
       return Iterables.getOnlyElement(arg0);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/http/HttpMessage.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/http/HttpMessage.java b/core/src/main/java/org/jclouds/http/HttpMessage.java
index 7719215..424a687 100644
--- a/core/src/main/java/org/jclouds/http/HttpMessage.java
+++ b/core/src/main/java/org/jclouds/http/HttpMessage.java
@@ -62,7 +62,7 @@ public class HttpMessage extends PayloadEnclosingImpl {
          this.payload = payload;
          return self();
       }
-      
+
       /**
        * @see HttpMessage#getPayload()
        * @deprecated see payload(ByteSource.wrap(byte[]))
@@ -80,7 +80,7 @@ public class HttpMessage extends PayloadEnclosingImpl {
          this.payload = Payloads.newByteSourcePayload(checkNotNull(payload, "payload"));
          return self();
       }
-      
+
       /**
        * @see HttpMessage#getPayload()
        * @deprecated see payload(Files.asByteSource(File))
@@ -90,7 +90,7 @@ public class HttpMessage extends PayloadEnclosingImpl {
          this.payload = Payloads.newFilePayload(checkNotNull(payload, "payload"));
          return self();
       }
-      
+
       /**
        * @see HttpMessage#getPayload()
        */
@@ -98,7 +98,7 @@ public class HttpMessage extends PayloadEnclosingImpl {
          this.payload = Payloads.newInputStreamPayload(checkNotNull(payload, "payload"));
          return self();
       }
-      
+
       /**
        * @see HttpMessage#getPayload()
        * @deprecated see payload(ByteSource.wrap(String.getBytes()))
@@ -111,7 +111,7 @@ public class HttpMessage extends PayloadEnclosingImpl {
 
       /**
        * replaces all headers with the the supplied multimap.
-       * 
+       *
        * @see HttpMessage#getHeaders()
        */
       public T headers(Multimap<String, String> headers) {
@@ -119,10 +119,10 @@ public class HttpMessage extends PayloadEnclosingImpl {
          this.headers.putAll(checkNotNull(headers, "headers"));
          return self();
       }
-      
+
       /**
        * replace all headers that have the same keys as the input multimap
-       * 
+       *
        * @see HttpMessage#getHeaders()
        */
       public T replaceHeaders(Multimap<String, String> headers) {
@@ -132,10 +132,10 @@ public class HttpMessage extends PayloadEnclosingImpl {
          this.headers.putAll(Multimaps2.replaceEntries(oldHeaders, headers));
          return self();
       }
-      
+
       /**
        * replace all headers that have the same keys as the input multimap
-       * 
+       *
        * @see HttpMessage#getHeaders()
        */
       public T removeHeader(String name) {
@@ -145,11 +145,11 @@ public class HttpMessage extends PayloadEnclosingImpl {
          this.headers.putAll(Multimaps2.withoutKey(oldHeaders, name));
          return self();
       }
-      
+
       /**
        * Note that if there's an existing header of the same name, this will only add the new value,
        * not replace it.
-       * 
+       *
        * @see HttpMessage#getHeaders()
        */
       public T addHeader(String name, String ... values) {
@@ -159,7 +159,7 @@ public class HttpMessage extends PayloadEnclosingImpl {
 
       /**
        * Replace header.
-       * 
+       *
        * @see HttpMessage#getHeaders()
        */
       public T replaceHeader(String name, String ... values) {
@@ -167,7 +167,7 @@ public class HttpMessage extends PayloadEnclosingImpl {
          checkNotNull(values, "values of %s", name);
          return replaceHeaders(ImmutableMultimap.<String, String> builder().putAll(name, values).build());
       }
-      
+
       public HttpMessage build() {
          return new HttpMessage(headers.build(), payload);
       }
@@ -202,8 +202,8 @@ public class HttpMessage extends PayloadEnclosingImpl {
     */
    public String getFirstHeaderOrNull(String string) {
       Collection<String> values = headers.get(string);
-      if (values.size() == 0) {
-         Multimap<String, String> lowerCaseHeaders = Multimaps2.transformKeys(getHeaders(), new ToLowerCase()); 
+      if (values.isEmpty()) {
+         Multimap<String, String> lowerCaseHeaders = Multimaps2.transformKeys(getHeaders(), new ToLowerCase());
          values = lowerCaseHeaders.get(string.toLowerCase());
       }
       return (values.size() >= 1) ? values.iterator().next() : null;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/http/Uris.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/http/Uris.java b/core/src/main/java/org/jclouds/http/Uris.java
index 39e521c..aaf05d8 100644
--- a/core/src/main/java/org/jclouds/http/Uris.java
+++ b/core/src/main/java/org/jclouds/http/Uris.java
@@ -46,25 +46,25 @@ import com.google.common.collect.Multimap;
 /**
  * Functions on {@code String}s and {@link URI}s. Strings can be level 1 <a
  * href="http://tools.ietf.org/html/rfc6570">RFC6570</a> form.
- * 
+ *
  * ex.
- * 
+ *
  * <pre>
  *  https://api.github.com/repos/{user}
  * </pre>
- * 
+ *
  * <h4>Reminder</h4>
- * 
+ *
  * Unresolved <a href="http://tools.ietf.org/html/rfc6570">RFC6570</a> templates are not supported by
  * {@link URI#create(String)} and result in an {@link IllegalArgumentException}.
- * 
+ *
  * <h4>Limitations</h4>
- * 
+ *
  * In order to reduce complexity not needed in jclouds, this doesn't support {@link URI#getUserInfo()},
  * {@link URI#getFragment()}, or {@code matrix} params. Matrix params can be achieved via adding {@code ;} refs in the
  * http path directly. Moreover, since jclouds only uses level 1 templates, this doesn't support the additional forms
  * noted in the RFC.
- * 
+ *
  * @since 1.6
  */
 @Beta
@@ -88,13 +88,13 @@ public final class Uris {
 
    /**
     * Mutable URI builder that can be in level 1 <a href="http://tools.ietf.org/html/rfc6570">RFC6570</a> template form.
-    * 
+    *
     * ex.
-    * 
+    *
     * <pre>
     *  https://api.github.com/repos/{user}
     * </pre>
-    * 
+    *
     */
    public static final class UriBuilder {
       // colon for urns, semicolon & equals for matrix params
@@ -114,7 +114,7 @@ public final class Uris {
          this.skipPathEncoding = ImmutableSet.copyOf(checkNotNull(skipPathEncoding, "skipPathEncoding"));
          return this;
       }
-      
+
       /**
        * @param scheme
        *           scheme to set or replace
@@ -207,10 +207,10 @@ public final class Uris {
       /**
        * <a href="http://tools.ietf.org/html/rfc6570">RFC6570</a> templates have variables defined in curly braces.
        * Curly brace characters are unparsable via {@link URI#create} and result in an {@link IllegalArgumentException}.
-       * 
+       *
        * This implementation temporarily replaces curly braces with double parenthesis so that it can reuse
        * {@link URI#create}.
-       * 
+       *
        * @param uri
        *           template which may have template parameters inside
        */
@@ -307,7 +307,7 @@ public final class Uris {
             b.append(':').append(port);
          if (path != null)
             b.append(urlEncode(UriTemplates.expand(path, variables), skipPathEncoding));
-         if (query.size() > 0)
+         if (!query.isEmpty())
             b.append('?').append(encodeQueryLine(query));
          return b.toString();
       }
@@ -326,7 +326,7 @@ public final class Uris {
             b.append(':').append(port);
          if (path != null)
             b.append(path);
-         if (query.size() > 0)
+         if (!query.isEmpty())
             b.append('?').append(buildQueryLine(query));
          return b.toString();
       }
@@ -376,8 +376,8 @@ public final class Uris {
 
    /**
     * Mutable and permits null values. Url decodes all mutations except {@link Multimap#putAll(Multimap)}
-    * 
-    * 
+    *
+    *
     */
    static final class DecodingMultimap extends ForwardingMultimap<String, Object> {
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/http/functions/UnwrapOnlyJsonValueInSet.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/http/functions/UnwrapOnlyJsonValueInSet.java b/core/src/main/java/org/jclouds/http/functions/UnwrapOnlyJsonValueInSet.java
index d80b944..2b47399 100644
--- a/core/src/main/java/org/jclouds/http/functions/UnwrapOnlyJsonValueInSet.java
+++ b/core/src/main/java/org/jclouds/http/functions/UnwrapOnlyJsonValueInSet.java
@@ -39,7 +39,7 @@ public class UnwrapOnlyJsonValueInSet<T> implements Function<HttpResponse, T> {
    @Override
    public T apply(HttpResponse arg0) {
       Set<T> set = json.apply(arg0);
-      if (set == null || set.size() == 0)
+      if (set == null || set.isEmpty())
          return null;
       return Iterables.getOnlyElement(set);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/http/options/GetOptions.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/http/options/GetOptions.java b/core/src/main/java/org/jclouds/http/options/GetOptions.java
index a999620..278a40a 100644
--- a/core/src/main/java/org/jclouds/http/options/GetOptions.java
+++ b/core/src/main/java/org/jclouds/http/options/GetOptions.java
@@ -41,8 +41,8 @@ import com.google.common.collect.Multimap;
  * <p/>
  * <code>
  * import static org.jclouds.http.options.GetOptions.Builder.*
- * 
- * 
+ *
+ *
  * // this will get the first megabyte of an object.
  * blob = client.get("objectName",range(0,1024));
  * <code>
@@ -92,11 +92,11 @@ public class GetOptions extends BaseHttpRequestOptions {
    /**
     * For use in the header Range
     * <p />
-    * 
+    *
     * @see GetOptions#range(long, long)
     */
    public String getRange() {
-      return (ranges.size() > 0) ? String.format("bytes=%s", Joiner.on(",").join(ranges)) : null;
+      return (!ranges.isEmpty()) ? String.format("bytes=%s", Joiner.on(",").join(ranges)) : null;
    }
 
    /**
@@ -117,7 +117,7 @@ public class GetOptions extends BaseHttpRequestOptions {
     * <p />
     * Return the object only if it has been modified since the specified time, otherwise return a
     * 304 (not modified).
-    * 
+    *
     * @see #ifModifiedSince(Date)
     */
    public String getIfModifiedSince() {
@@ -142,7 +142,7 @@ public class GetOptions extends BaseHttpRequestOptions {
     * <p />
     * Return the object only if it has not been modified since the specified time, otherwise return
     * a 412 (precondition failed).
-    * 
+    *
     * @see #ifUnmodifiedSince(Date)
     */
    public String getIfUnmodifiedSince() {
@@ -151,10 +151,10 @@ public class GetOptions extends BaseHttpRequestOptions {
 
    /**
     * The object's eTag hash should match the parameter <code>eTag</code>.
-    * 
+    *
     * <p />
     * Not compatible with {@link #ifETagDoesntMatch(byte[])} or {@link #ifModifiedSince(Date)}
-    * 
+    *
     * @param eTag
     *           hash representing the payload
     */
@@ -170,7 +170,7 @@ public class GetOptions extends BaseHttpRequestOptions {
     * <p />
     * Return the object only if its payload tag (ETag) is the same as the eTag specified, otherwise
     * return a 412 (precondition failed).
-    * 
+    *
     * @see #ifETagMatches(String)
     */
    public String getIfMatch() {
@@ -181,7 +181,7 @@ public class GetOptions extends BaseHttpRequestOptions {
     * The object should not have a eTag hash corresponding with the parameter <code>eTag</code>.
     * <p />
     * Not compatible with {@link #ifETagMatches(String)} or {@link #ifUnmodifiedSince(Date)}
-    * 
+    *
     * @param eTag
     *           hash representing the payload
     */
@@ -197,7 +197,7 @@ public class GetOptions extends BaseHttpRequestOptions {
     * <p />
     * Return the object only if its payload tag (ETag) is different from the one specified,
     * otherwise return a 304 (not modified).
-    * 
+    *
     * @see #ifETagDoesntMatch(String)
     */
    public String getIfNoneMatch() {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/location/functions/RegionToEndpoint.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/location/functions/RegionToEndpoint.java b/core/src/main/java/org/jclouds/location/functions/RegionToEndpoint.java
index 50c4357..ac1edf1 100644
--- a/core/src/main/java/org/jclouds/location/functions/RegionToEndpoint.java
+++ b/core/src/main/java/org/jclouds/location/functions/RegionToEndpoint.java
@@ -46,7 +46,7 @@ public class RegionToEndpoint implements Function<Object, URI> {
    public URI apply(@Nullable Object from) {
       checkArgument(from != null && from instanceof String, "you must specify a region, as a String argument");
       Map<String, Supplier<URI>> regionToEndpoint = regionToEndpointSupplier.get();
-      checkState(regionToEndpoint.size() > 0, "no region name to endpoint mappings configured!");
+      checkState(!regionToEndpoint.isEmpty(), "no region name to endpoint mappings configured!");
       checkArgument(regionToEndpoint.containsKey(from),
                "requested location %s, which is not in the configured locations: %s", from, regionToEndpoint);
       return regionToEndpoint.get(from).get();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/location/functions/ZoneToEndpoint.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/location/functions/ZoneToEndpoint.java b/core/src/main/java/org/jclouds/location/functions/ZoneToEndpoint.java
index a308dbe..b1ce51e 100644
--- a/core/src/main/java/org/jclouds/location/functions/ZoneToEndpoint.java
+++ b/core/src/main/java/org/jclouds/location/functions/ZoneToEndpoint.java
@@ -46,7 +46,7 @@ public class ZoneToEndpoint implements Function<Object, URI> {
    public URI apply(@Nullable Object from) {
       checkArgument(from != null && from instanceof String, "you must specify a zone, as a String argument");
       Map<String, Supplier<URI>> zoneToEndpoint = zoneToEndpointSupplier.get();
-      checkState(zoneToEndpoint.size() > 0, "no zone name to endpoint mappings configured!");
+      checkState(!zoneToEndpoint.isEmpty(), "no zone name to endpoint mappings configured!");
       checkArgument(zoneToEndpoint.containsKey(from),
                "requested location %s, which is not in the configured locations: %s", from, zoneToEndpoint);
       return zoneToEndpoint.get(from).get();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/location/predicates/fromconfig/AnyOrConfiguredRegionId.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/location/predicates/fromconfig/AnyOrConfiguredRegionId.java b/core/src/main/java/org/jclouds/location/predicates/fromconfig/AnyOrConfiguredRegionId.java
index 2100f2f..2eec4be 100644
--- a/core/src/main/java/org/jclouds/location/predicates/fromconfig/AnyOrConfiguredRegionId.java
+++ b/core/src/main/java/org/jclouds/location/predicates/fromconfig/AnyOrConfiguredRegionId.java
@@ -27,7 +27,7 @@ import org.jclouds.location.predicates.RegionIdFilter;
 import org.jclouds.location.suppliers.fromconfig.RegionIdsFromConfiguration;
 
 /**
- * 
+ *
  * If there are regions configured in {@link RegionIdsFromConfiguration}, return
  * true if that set contains the input param. If there aren't, return true.
  */
@@ -44,11 +44,11 @@ public class AnyOrConfiguredRegionId implements RegionIdFilter {
    @Override
    public boolean apply(String input) {
       Set<String> idsInConfig = idsInConfigSupplier.get();
-      if (idsInConfig.size() == 0)
+      if (idsInConfig.isEmpty())
          return true;
       return idsInConfig.contains(input);
    }
-   
+
    @Override
    public String toString() {
       return "anyOrConfiguredRegionId(" + idsInConfigSupplier + ")";

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/location/predicates/fromconfig/AnyOrConfiguredZoneId.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/location/predicates/fromconfig/AnyOrConfiguredZoneId.java b/core/src/main/java/org/jclouds/location/predicates/fromconfig/AnyOrConfiguredZoneId.java
index 514a1ba..cefc11e 100644
--- a/core/src/main/java/org/jclouds/location/predicates/fromconfig/AnyOrConfiguredZoneId.java
+++ b/core/src/main/java/org/jclouds/location/predicates/fromconfig/AnyOrConfiguredZoneId.java
@@ -27,7 +27,7 @@ import org.jclouds.location.predicates.ZoneIdFilter;
 import org.jclouds.location.suppliers.fromconfig.ZoneIdsFromConfiguration;
 
 /**
- * 
+ *
  * If there are zones configured in {@link ZoneIdsFromConfiguration}, return
  * true if that set contains the input param. If there aren't, return true.
  */
@@ -44,11 +44,11 @@ public class AnyOrConfiguredZoneId implements ZoneIdFilter {
    @Override
    public boolean apply(String input) {
       Set<String> idsInConfig = idsInConfigSupplier.get();
-      if (idsInConfig.size() == 0)
+      if (idsInConfig.isEmpty())
          return true;
       return idsInConfig.contains(input);
    }
-   
+
    @Override
    public String toString() {
       return "anyOrConfiguredZoneId(" + idsInConfigSupplier + ")";

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/location/suppliers/all/RegionToProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/location/suppliers/all/RegionToProvider.java b/core/src/main/java/org/jclouds/location/suppliers/all/RegionToProvider.java
index 6b828ee..8d8c819 100644
--- a/core/src/main/java/org/jclouds/location/suppliers/all/RegionToProvider.java
+++ b/core/src/main/java/org/jclouds/location/suppliers/all/RegionToProvider.java
@@ -56,7 +56,7 @@ public class RegionToProvider implements LocationsSupplier {
       Builder<Location> locations = ImmutableSet.builder();
       Location provider = Iterables.getOnlyElement(justProvider.get());
       Set<String> regions = regionsSupplier.get();
-      checkState(regions.size() > 0, "no regions found for provider %s, using supplier %s", provider, regionsSupplier);
+      checkState(!regions.isEmpty(), "no regions found for provider %s, using supplier %s", provider, regionsSupplier);
       Map<String, Supplier<Set<String>>> isoCodesById = isoCodesByIdSupplier.get();
       for (String region : regions) {
          LocationBuilder builder = new LocationBuilder().scope(LocationScope.REGION).id(region).description(region)

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/location/suppliers/all/RegionToProviderOrJustProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/location/suppliers/all/RegionToProviderOrJustProvider.java b/core/src/main/java/org/jclouds/location/suppliers/all/RegionToProviderOrJustProvider.java
index ac49b59..759255b 100644
--- a/core/src/main/java/org/jclouds/location/suppliers/all/RegionToProviderOrJustProvider.java
+++ b/core/src/main/java/org/jclouds/location/suppliers/all/RegionToProviderOrJustProvider.java
@@ -55,7 +55,7 @@ public class RegionToProviderOrJustProvider implements Supplier<Set<? extends Lo
       Location provider = Iterables.getOnlyElement(justProvider.get());
       Set<String> regions = regionsSupplier.get();
       Map<String, Supplier<Set<String>>> isoCodesById = isoCodesByIdSupplier.get();
-      if (regions.size() == 0)
+      if (regions.isEmpty())
          return locations.add(provider).build();
       else
          for (String region : regions) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/location/suppliers/all/ZoneToProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/location/suppliers/all/ZoneToProvider.java b/core/src/main/java/org/jclouds/location/suppliers/all/ZoneToProvider.java
index 5b9994b..f0a5a1b 100644
--- a/core/src/main/java/org/jclouds/location/suppliers/all/ZoneToProvider.java
+++ b/core/src/main/java/org/jclouds/location/suppliers/all/ZoneToProvider.java
@@ -61,7 +61,7 @@ public class ZoneToProvider implements LocationsSupplier {
    public Set<? extends Location> get() {
       Location provider = Iterables.getOnlyElement(justProvider.get());
       Set<String> zoneIds = zoneIdsSupplier.get();
-      checkState(zoneIds.size() > 0, "no zones found for provider %s, using supplier %s", provider, zoneIdsSupplier);
+      checkState(!zoneIds.isEmpty(), "no zones found for provider %s, using supplier %s", provider, zoneIdsSupplier);
       Map<String, Supplier<Set<String>>> isoCodesById = isoCodesByIdSupplier.get();
 
       Builder<Location> locations = ImmutableSet.builder();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/location/suppliers/all/ZoneToRegionToProviderOrJustProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/location/suppliers/all/ZoneToRegionToProviderOrJustProvider.java b/core/src/main/java/org/jclouds/location/suppliers/all/ZoneToRegionToProviderOrJustProvider.java
index 4de5ac6..a657636 100644
--- a/core/src/main/java/org/jclouds/location/suppliers/all/ZoneToRegionToProviderOrJustProvider.java
+++ b/core/src/main/java/org/jclouds/location/suppliers/all/ZoneToRegionToProviderOrJustProvider.java
@@ -70,7 +70,7 @@ public class ZoneToRegionToProviderOrJustProvider implements LocationsSupplier {
    public Set<? extends Location> get() {
       Set<? extends Location> regionsOrJustProvider = regionToProviderOrJustProvider.get();
       Set<String> zoneIds = zoneIdsSupplier.get();
-      if (zoneIds.size() == 0)
+      if (zoneIds.isEmpty())
          return regionsOrJustProvider;
       Map<String, Location> zoneIdToParent = setParentOfZoneToRegionOrProvider(zoneIds, regionsOrJustProvider);
       Map<String, Supplier<Set<String>>> isoCodesById = isoCodesByIdSupplier.get();
@@ -121,7 +121,7 @@ public class ZoneToRegionToProviderOrJustProvider implements LocationsSupplier {
       }
 
       SetView<String> orphans = Sets.difference(zoneIds, zoneIdToParent.keySet());
-      if (orphans.size() > 0) {
+      if (!orphans.isEmpty()) {
          // any unmatched zones should have their parents set to the provider
          checkState(
                   provider != null,
@@ -130,7 +130,7 @@ public class ZoneToRegionToProviderOrJustProvider implements LocationsSupplier {
          for (String orphanedZoneId : orphans)
             zoneIdToParent.put(orphanedZoneId, provider);
       }
-      
+
       checkState(zoneIdToParent.keySet().containsAll(zoneIds), "orphaned zones: %s ", Sets.difference(zoneIds,
                zoneIdToParent.keySet()));
       return zoneIdToParent;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/location/suppliers/fromconfig/RegionIdToZoneIdsFromConfiguration.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/location/suppliers/fromconfig/RegionIdToZoneIdsFromConfiguration.java b/core/src/main/java/org/jclouds/location/suppliers/fromconfig/RegionIdToZoneIdsFromConfiguration.java
index 744ac2e..029fed4 100644
--- a/core/src/main/java/org/jclouds/location/suppliers/fromconfig/RegionIdToZoneIdsFromConfiguration.java
+++ b/core/src/main/java/org/jclouds/location/suppliers/fromconfig/RegionIdToZoneIdsFromConfiguration.java
@@ -40,7 +40,7 @@ import com.google.common.collect.ImmutableMap.Builder;
 import com.google.common.collect.ImmutableSet;
 
 /**
- * 
+ *
  * looks for properties bound to the naming convention jclouds.location.region.{@code regionId}
  * .zones
  */
@@ -67,7 +67,7 @@ public class RegionIdToZoneIdsFromConfiguration implements RegionIdToZoneIdsSupp
    @Override
    public Map<String, Supplier<Set<String>>> get() {
       Set<String> regions = regionsSupplier.get();
-      if (regions.size() == 0) {
+      if (regions.isEmpty()) {
          logger.debug("no regions configured for provider %s", provider);
          return ImmutableMap.of();
       }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/logging/config/BindLoggersAnnotatedWithResource.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/logging/config/BindLoggersAnnotatedWithResource.java b/core/src/main/java/org/jclouds/logging/config/BindLoggersAnnotatedWithResource.java
index 868deaf..1104091 100644
--- a/core/src/main/java/org/jclouds/logging/config/BindLoggersAnnotatedWithResource.java
+++ b/core/src/main/java/org/jclouds/logging/config/BindLoggersAnnotatedWithResource.java
@@ -108,7 +108,7 @@ public class BindLoggersAnnotatedWithResource implements TypeListener {
 
         Class<? super I> type = injectableType.getRawType();
         Set<Field> loggerFields = getLoggerFieldsAnnotatedWithResource(type);
-        if (loggerFields.size() == 0)
+        if (loggerFields.isEmpty())
             return;
 
         Logger logger = loggerFactory.getLogger(type.getName());

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/reflect/Invocation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/reflect/Invocation.java b/core/src/main/java/org/jclouds/reflect/Invocation.java
index b05d780..039e6c8 100644
--- a/core/src/main/java/org/jclouds/reflect/Invocation.java
+++ b/core/src/main/java/org/jclouds/reflect/Invocation.java
@@ -43,13 +43,13 @@ public final class Invocation {
 
    /**
     * invocation without arguments.
-    * 
+    *
     * @throws IllegalArgumentException
     *            if in invokable requires arguments
     */
    public static Invocation create(Invokable<?, ?> invokable) {
       checkArgument(
-            invokable.getParameters().size() == 0 || (invokable.getParameters().size() == 1 && invokable.isVarArgs()),
+            invokable.getParameters().isEmpty() || (invokable.getParameters().size() == 1 && invokable.isVarArgs()),
             "please specify arguments to %s", invokable);
       return create(invokable, ImmutableList.of());
    }
@@ -71,7 +71,7 @@ public final class Invocation {
 
    /**
     * arguments applied to {@link #getInvokable()} during {@link Invokable#invoke(Object, Object...)}
-    * 
+    *
     * @param args
     *           as these represent parameters, can contain nulls
     */

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/rest/binders/BindMapToStringPayload.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/rest/binders/BindMapToStringPayload.java b/core/src/main/java/org/jclouds/rest/binders/BindMapToStringPayload.java
index e0b11d0..0a949c6 100644
--- a/core/src/main/java/org/jclouds/rest/binders/BindMapToStringPayload.java
+++ b/core/src/main/java/org/jclouds/rest/binders/BindMapToStringPayload.java
@@ -44,7 +44,7 @@ public class BindMapToStringPayload implements MapBinder {
       checkArgument(invoked.isAnnotationPresent(Payload.class),
             "method %s must have @Payload annotation to use this binder", invoked);
       String payload = invoked.getAnnotation(Payload.class).value();
-      if (postParams.size() > 0) {
+      if (!postParams.isEmpty()) {
          payload = urlDecode(expand(payload, postParams));
       }
       return (R) request.toBuilder().payload(payload).build();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java b/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java
index a106868..9f1461a 100644
--- a/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java
+++ b/core/src/main/java/org/jclouds/rest/internal/RestAnnotationProcessor.java
@@ -274,7 +274,7 @@ public class RestAnnotationProcessor implements Function<Invocation, HttpRequest
             payload = Payloads.newStringPayload(stringPayload);
       }
 
-      if (queryParams.size() > 0) {
+      if (!queryParams.isEmpty()) {
          uriBuilder.query(queryParams);
       }
 
@@ -291,12 +291,12 @@ public class RestAnnotationProcessor implements Function<Invocation, HttpRequest
       List<? extends Part> parts = getParts(invocation, ImmutableMultimap.<String, Object> builder()
             .putAll(tokenValues).putAll(formParams).build());
 
-      if (parts.size() > 0) {
-         if (formParams.size() > 0) {
+      if (!parts.isEmpty()) {
+         if (!formParams.isEmpty()) {
             parts = newLinkedList(concat(transform(formParams.entries(), ENTRY_TO_PART), parts));
          }
          payload = new MultipartForm(MultipartForm.BOUNDARY, parts);
-      } else if (formParams.size() > 0) {
+      } else if (!formParams.isEmpty()) {
          payload = Payloads.newUrlEncodedFormPayload(transformValues(formParams, NullableToStringFunction.INSTANCE));
       } else if (headers.containsKey(CONTENT_TYPE) && !HttpRequest.NON_PAYLOAD_METHODS.contains(requestMethod)) {
          if (payload == null)

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/core/src/main/java/org/jclouds/suppliers/SupplyKeyMatchingValueOrNull.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/suppliers/SupplyKeyMatchingValueOrNull.java b/core/src/main/java/org/jclouds/suppliers/SupplyKeyMatchingValueOrNull.java
index e96bb03..2cbdb85 100644
--- a/core/src/main/java/org/jclouds/suppliers/SupplyKeyMatchingValueOrNull.java
+++ b/core/src/main/java/org/jclouds/suppliers/SupplyKeyMatchingValueOrNull.java
@@ -51,7 +51,7 @@ public class SupplyKeyMatchingValueOrNull<K, V> implements Supplier<K> {
       // eagerly get all the values, so we can see which is default
       Map<K, V> map = Maps.transformValues(supplier.get(), Suppliers.<V> supplierFunction());
       K region = ImmutableBiMap.copyOf(map).inverse().get(uri);
-      if (region == null && map.size() > 0) {
+      if (region == null && !map.isEmpty()) {
          region = Iterables.get(map.keySet(), 0);
          logger.warn("failed to find key for value %s in %s; choosing first: %s", uri, map, region);
       }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/binders/BindLaunchSpecificationToFormParams.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/binders/BindLaunchSpecificationToFormParams.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/binders/BindLaunchSpecificationToFormParams.java
index 6326a18..c3f271a 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/binders/BindLaunchSpecificationToFormParams.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/binders/BindLaunchSpecificationToFormParams.java
@@ -54,11 +54,11 @@ public class BindLaunchSpecificationToFormParams implements Binder, Function<Lau
          builder.put("LaunchSpecification.Placement.AvailabilityZone", launchSpec.getAvailabilityZone());
 
       AWSRunInstancesOptions options = new AWSRunInstancesOptions();
-      if (launchSpec.getBlockDeviceMappings().size() > 0)
+      if (!launchSpec.getBlockDeviceMappings().isEmpty())
          options.withBlockDeviceMappings(launchSpec.getBlockDeviceMappings());
-      if (launchSpec.getSecurityGroupNames().size() > 0)
+      if (!launchSpec.getSecurityGroupNames().isEmpty())
          options.withSecurityGroups(launchSpec.getSecurityGroupNames());
-      if (launchSpec.getSecurityGroupIds().size() > 0)
+      if (!launchSpec.getSecurityGroupIds().isEmpty())
          options.withSecurityGroupIds(launchSpec.getSecurityGroupIds());
       options.asType(checkNotNull(launchSpec.getInstanceType(), "instanceType"));
       if (launchSpec.getSubnetId() != null)

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeService.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeService.java b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeService.java
index 472b414..86b1ff0 100644
--- a/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeService.java
+++ b/providers/aws-ec2/src/main/java/org/jclouds/aws/ec2/compute/AWSEC2ComputeService.java
@@ -122,7 +122,7 @@ public class AWSEC2ComputeService extends EC2ComputeService {
       // http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?using_cluster_computing.html
       String placementGroup = String.format("jclouds#%s#%s", group, region);
       try {
-         if (client.getPlacementGroupApi().get().describePlacementGroupsInRegion(region, placementGroup).size() > 0) {
+         if (!client.getPlacementGroupApi().get().describePlacementGroupsInRegion(region, placementGroup).isEmpty()) {
             logger.debug(">> deleting placementGroup(%s)", placementGroup);
             try {
                client.getPlacementGroupApi().get().deletePlacementGroupInRegion(region, placementGroup);


[3/4] Prefer isEmpty() for collections rather than size()

Posted by jd...@apache.org.
http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/ec2/src/test/java/org/jclouds/ec2/EBSBootEC2ApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/test/java/org/jclouds/ec2/EBSBootEC2ApiLiveTest.java b/apis/ec2/src/test/java/org/jclouds/ec2/EBSBootEC2ApiLiveTest.java
index ff18a9d..8741af6 100644
--- a/apis/ec2/src/test/java/org/jclouds/ec2/EBSBootEC2ApiLiveTest.java
+++ b/apis/ec2/src/test/java/org/jclouds/ec2/EBSBootEC2ApiLiveTest.java
@@ -80,7 +80,7 @@ import com.google.inject.Injector;
  * Adapted from the following sources: {@link http://gist.github.com/249915}, {@link http
  * ://www.capsunlock.net/2009/12/create-ebs-boot-ami.html}
  * <p/>
- * 
+ *
  * Generally disabled, as it incurs higher fees.
  */
 @Test(groups = "live", enabled = false, singleThreaded = true, testName = "EBSBootEC2ApiLiveTest")
@@ -334,7 +334,7 @@ public class EBSBootEC2ApiLiveTest extends BaseComputeServiceContextLiveTest {
    void testAMIFromBundle() {
       volume = Iterables.getOnlyElement(client.getElasticBlockStoreApi().get().describeVolumesInRegion(
             volume.getRegion(), volume.getId()));
-      if (volume.getAttachments().size() > 0) {
+      if (!volume.getAttachments().isEmpty()) {
          // should be cleanly unmounted, so force is not necessary.
          client.getElasticBlockStoreApi().get().detachVolumeInRegion(instance.getRegion(), volume.getId(), false);
          System.out.printf("%d: %s awaiting detachment to complete%n", System.currentTimeMillis(), volume.getId());
@@ -483,7 +483,7 @@ public class EBSBootEC2ApiLiveTest extends BaseComputeServiceContextLiveTest {
 
    /**
     * this tests "personality" as the file looked up was sent during instance creation
-    * 
+    *
     * @throws UnknownHostException
     */
    private void sshPing(RunningInstance newDetails) throws UnknownHostException {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/BaseDriveToMap.java
----------------------------------------------------------------------
diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/BaseDriveToMap.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/BaseDriveToMap.java
index 625686d..e8ab235 100644
--- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/BaseDriveToMap.java
+++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/BaseDriveToMap.java
@@ -40,9 +40,9 @@ public class BaseDriveToMap implements Function<Drive, Map<String, String>> {
       builder.put("size", from.getSize() + "");
       if (from.getClaimType() != ClaimType.EXCLUSIVE)
          builder.put("claim:type", from.getClaimType().toString());
-      if (from.getReaders().size() != 0)
+      if (!from.getReaders().isEmpty())
          builder.put("readers", Joiner.on(' ').join(from.getReaders()));
-      if (from.getTags().size() != 0)
+      if (!from.getTags().isEmpty())
          builder.put("tags", Joiner.on(' ').join(from.getTags()));
       for (Entry<String, String> entry : from.getUserMetadata().entrySet())
          builder.put("user:" + entry.getKey(), entry.getValue());

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/CreateDriveRequestToMap.java
----------------------------------------------------------------------
diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/CreateDriveRequestToMap.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/CreateDriveRequestToMap.java
index 68e65f9..6c6d5b4 100644
--- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/CreateDriveRequestToMap.java
+++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/CreateDriveRequestToMap.java
@@ -43,7 +43,7 @@ public class CreateDriveRequestToMap implements Function<Drive, Map<String, Stri
       builder.putAll(baseDriveToMap.apply(from));
       if (from instanceof CreateDriveRequest) {
          CreateDriveRequest create = CreateDriveRequest.class.cast(from);
-         if (create.getAvoid().size() != 0)
+         if (!create.getAvoid().isEmpty())
             builder.put("avoid", Joiner.on(' ').join(create.getAvoid()));
          if (create.getEncryptionCipher() != null)
             builder.put("encryption:cipher", create.getEncryptionCipher());

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/KeyValuesDelimitedByBlankLinesToDriveInfo.java
----------------------------------------------------------------------
diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/KeyValuesDelimitedByBlankLinesToDriveInfo.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/KeyValuesDelimitedByBlankLinesToDriveInfo.java
index ce1b689..432a4af 100644
--- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/KeyValuesDelimitedByBlankLinesToDriveInfo.java
+++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/KeyValuesDelimitedByBlankLinesToDriveInfo.java
@@ -39,7 +39,7 @@ public class KeyValuesDelimitedByBlankLinesToDriveInfo implements Function<HttpR
    @Override
    public DriveInfo apply(HttpResponse response) {
       Set<DriveInfo> drives = setParser.apply(response);
-      if (drives.size() == 0)
+      if (drives.isEmpty())
          return null;
       return Iterables.get(drives, 0);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/KeyValuesDelimitedByBlankLinesToServerInfo.java
----------------------------------------------------------------------
diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/KeyValuesDelimitedByBlankLinesToServerInfo.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/KeyValuesDelimitedByBlankLinesToServerInfo.java
index a3c8ae4..08dfb64 100644
--- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/KeyValuesDelimitedByBlankLinesToServerInfo.java
+++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/KeyValuesDelimitedByBlankLinesToServerInfo.java
@@ -39,7 +39,7 @@ public class KeyValuesDelimitedByBlankLinesToServerInfo implements Function<Http
    @Override
    public ServerInfo apply(HttpResponse response) {
       Set<ServerInfo> drives = setParser.apply(response);
-      if (drives.size() == 0)
+      if (drives.isEmpty())
          return null;
       return Iterables.get(drives, 0);
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java
----------------------------------------------------------------------
diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java
index 4bf1669..d3427a7 100644
--- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java
+++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/ListOfKeyValuesDelimitedByBlankLinesToListOfMaps.java
@@ -45,7 +45,7 @@ public class ListOfKeyValuesDelimitedByBlankLinesToListOfMaps implements Functio
                   }
                }
             }
-            if (map.size() != 0)
+            if (!map.isEmpty())
                maps.add(map);
          }
       }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/MapToDriveInfo.java
----------------------------------------------------------------------
diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/MapToDriveInfo.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/MapToDriveInfo.java
index 645d804..c8bebb5 100644
--- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/MapToDriveInfo.java
+++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/MapToDriveInfo.java
@@ -40,7 +40,7 @@ public class MapToDriveInfo implements Function<Map<String, String>, DriveInfo>
 
    @Override
    public DriveInfo apply(Map<String, String> from) {
-      if (from.size() == 0)
+      if (from.isEmpty())
          return null;
       DriveInfo.Builder builder = new DriveInfo.Builder();
       builder.name(from.get("name"));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/MapToServerInfo.java
----------------------------------------------------------------------
diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/MapToServerInfo.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/MapToServerInfo.java
index 0cdfdd2..2743a6a 100644
--- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/MapToServerInfo.java
+++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/MapToServerInfo.java
@@ -51,7 +51,7 @@ public class MapToServerInfo implements Function<Map<String, String>, ServerInfo
 
    @Override
    public ServerInfo apply(Map<String, String> from) {
-      if (from.size() == 0)
+      if (from.isEmpty())
          return null;
       ServerInfo.Builder builder = new ServerInfo.Builder();
       builder.name(from.get("name"));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/ServerToMap.java
----------------------------------------------------------------------
diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/ServerToMap.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/ServerToMap.java
index c21d71b..1402b0a 100644
--- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/ServerToMap.java
+++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/functions/ServerToMap.java
@@ -60,7 +60,7 @@ public class ServerToMap implements Function<Server, Map<String, String>> {
          builder.put("smp", "auto");
       builder.put("mem", from.getMem() + "");
       builder.put("persistent", from.isPersistent() + "");
-      if (from.getBootDeviceIds().size() != 0)
+      if (!from.getBootDeviceIds().isEmpty())
          builder.put("boot", Joiner.on(' ').join(from.getBootDeviceIds()));
       for (Entry<String, ? extends Device> entry : from.getDevices().entrySet()) {
          builder.put(entry.getKey(), entry.getValue().getDriveUuid());
@@ -89,7 +89,7 @@ public class ServerToMap implements Function<Server, Map<String, String>> {
          builder.put("password", from.getVnc().getPassword());
       if (from.getVnc().isTls())
          builder.put("vnc:tls", "on");
-      if (from.getTags().size() != 0)
+      if (!from.getTags().isEmpty())
          builder.put("tags", Joiner.on(' ').join(from.getTags()));
       for (Entry<String, String> entry : from.getUserMetadata().entrySet())
          builder.put("user:" + entry.getKey(), entry.getValue());

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/elasticstack/src/main/java/org/jclouds/elasticstack/predicates/DriveClaimed.java
----------------------------------------------------------------------
diff --git a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/predicates/DriveClaimed.java b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/predicates/DriveClaimed.java
index fa7ff8d..1ffad10 100644
--- a/apis/elasticstack/src/main/java/org/jclouds/elasticstack/predicates/DriveClaimed.java
+++ b/apis/elasticstack/src/main/java/org/jclouds/elasticstack/predicates/DriveClaimed.java
@@ -47,7 +47,7 @@ public class DriveClaimed implements Predicate<DriveInfo> {
       if (drive == null)
          return false;
       logger.trace("%s: looking for drive claims: currently: %s", drive.getUuid(), drive.getClaimed());
-      return drive.getClaimed().size() > 0;
+      return !drive.getClaimed().isEmpty();
    }
 
    private DriveInfo refresh(DriveInfo drive) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/suppliers/LocationIdToURIFromAccessForTypeAndVersion.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/suppliers/LocationIdToURIFromAccessForTypeAndVersion.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/suppliers/LocationIdToURIFromAccessForTypeAndVersion.java
index cab564a..b03e285 100644
--- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/suppliers/LocationIdToURIFromAccessForTypeAndVersion.java
+++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v2_0/suppliers/LocationIdToURIFromAccessForTypeAndVersion.java
@@ -18,10 +18,11 @@ package org.jclouds.openstack.keystone.v2_0.suppliers;
 
 import static com.google.common.collect.Iterables.any;
 import static com.google.common.collect.Iterables.concat;
-import static com.google.common.collect.Iterables.size;
+import static com.google.common.collect.Iterables.isEmpty;
 import static com.google.common.collect.Iterables.tryFind;
 import static com.google.common.collect.Multimaps.index;
 
+
 import java.net.URI;
 import java.util.Collection;
 import java.util.Map;
@@ -93,12 +94,12 @@ public class LocationIdToURIFromAccessForTypeAndVersion implements Supplier<Map<
    @Override
    public Map<String, Supplier<URI>> get() {
       FluentIterable<Service> services = FluentIterable.from(access.get()).filter(apiTypeEquals);
-      if (services.toSet().size() == 0)
+      if (services.isEmpty())
          throw new NoSuchElementException(String.format("apiType %s not found in catalog %s", apiType, services));
 
       Iterable<Endpoint> endpoints = concat(services);
 
-      if (size(endpoints) == 0)
+      if (isEmpty(endpoints))
          throw new NoSuchElementException(
                String.format("no endpoints for apiType %s in services %s", apiType, services));
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java
index f0c973b..2762c30 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/NovaComputeServiceAdapter.java
@@ -164,15 +164,15 @@ public class NovaComputeServiceAdapter implements
    public Iterable<ImageInRegion> listImages() {
       Builder<ImageInRegion> builder = ImmutableSet.builder();
       Set<String> regions = regionIds.get();
-      checkState(regions.size() > 0, "no regions found in supplier %s", regionIds);
+      checkState(!regions.isEmpty(), "no regions found in supplier %s", regionIds);
       for (final String regionId : regions) {
          Set<? extends Image> images = novaApi.getImageApi(regionId).listInDetail().concat().toSet();
-         if (images.size() == 0) {
+         if (images.isEmpty()) {
             logger.debug("no images found in region %s", regionId);
             continue;
          }
          Iterable<? extends Image> active = filter(images, ImagePredicates.statusEquals(Image.Status.ACTIVE));
-         if (images.size() == 0) {
+         if (images.isEmpty()) {
             logger.debug("no images with status active in region %s; non-active: %s", regionId,
                      transform(active, new Function<Image, String>() {
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaSecurityGroupExtension.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaSecurityGroupExtension.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaSecurityGroupExtension.java
index 0899bb3..c6f78b4 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaSecurityGroupExtension.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/compute/extensions/NovaSecurityGroupExtension.java
@@ -209,7 +209,7 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension {
          return null;
       }
 
-      if (ipPermission.getCidrBlocks().size() > 0) {
+      if (!ipPermission.getCidrBlocks().isEmpty()) {
          for (String cidr : ipPermission.getCidrBlocks()) {
             sgApi.get().createRuleAllowingCidrBlock(id,
                     Ingress.builder()
@@ -221,7 +221,7 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension {
          }
       }
 
-      if (ipPermission.getGroupIds().size() > 0) {
+      if (!ipPermission.getGroupIds().isEmpty()) {
          for (String regionAndGroupRaw : ipPermission.getGroupIds()) {
             RegionAndId regionAndId = RegionAndId.fromSlashEncoded(regionAndGroupRaw);
             String groupId = regionAndId.getId();
@@ -268,7 +268,7 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension {
 
       org.jclouds.openstack.nova.v2_0.domain.SecurityGroup securityGroup = sgApi.get().get(id);
 
-      if (ipPermission.getCidrBlocks().size() > 0) {
+      if (!ipPermission.getCidrBlocks().isEmpty()) {
          for (String cidr : ipPermission.getCidrBlocks()) {
             for (SecurityGroupRule rule : filter(securityGroup.getRules(),
                     and(ruleCidr(cidr), ruleProtocol(ipPermission.getIpProtocol()),
@@ -279,7 +279,7 @@ public class NovaSecurityGroupExtension implements SecurityGroupExtension {
          }
       }
 
-      if (ipPermission.getGroupIds().size() > 0) {
+      if (!ipPermission.getGroupIds().isEmpty()) {
          for (String groupId : ipPermission.getGroupIds()) {
             for (SecurityGroupRule rule : filter(securityGroup.getRules(),
                     and(ruleGroup(groupId), ruleProtocol(ipPermission.getIpProtocol()),

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/SecurityGroup.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/SecurityGroup.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/SecurityGroup.java
index 97223a7..e00348b 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/SecurityGroup.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/domain/SecurityGroup.java
@@ -35,11 +35,11 @@ import com.google.common.collect.ImmutableSet;
 */
 public class SecurityGroup {
 
-   public static Builder<?> builder() { 
+   public static Builder<?> builder() {
       return new ConcreteBuilder();
    }
-   
-   public Builder<?> toBuilder() { 
+
+   public Builder<?> toBuilder() {
       return new ConcreteBuilder().fromSecurityGroup(this);
    }
 
@@ -51,8 +51,8 @@ public class SecurityGroup {
       protected String name;
       protected String description;
       protected Set<SecurityGroupRule> rules = ImmutableSet.of();
-   
-      /** 
+
+      /**
        * @see SecurityGroup#getId()
        */
       public T id(String id) {
@@ -60,7 +60,7 @@ public class SecurityGroup {
          return self();
       }
 
-      /** 
+      /**
        * @see SecurityGroup#getTenantId()
        */
       public T tenantId(String tenantId) {
@@ -68,7 +68,7 @@ public class SecurityGroup {
          return self();
       }
 
-      /** 
+      /**
        * @see SecurityGroup#getName()
        */
       public T name(String name) {
@@ -76,7 +76,7 @@ public class SecurityGroup {
          return self();
       }
 
-      /** 
+      /**
        * @see SecurityGroup#getDescription()
        */
       public T description(String description) {
@@ -84,11 +84,11 @@ public class SecurityGroup {
          return self();
       }
 
-      /** 
+      /**
        * @see SecurityGroup#getRules()
        */
       public T rules(Set<SecurityGroupRule> rules) {
-         this.rules = ImmutableSet.copyOf(checkNotNull(rules, "rules"));      
+         this.rules = ImmutableSet.copyOf(checkNotNull(rules, "rules"));
          return self();
       }
 
@@ -99,7 +99,7 @@ public class SecurityGroup {
       public SecurityGroup build() {
          return new SecurityGroup(id, tenantId, name, description, rules);
       }
-      
+
       public T fromSecurityGroup(SecurityGroup in) {
          return this
                   .id(in.getId())
@@ -133,7 +133,7 @@ public class SecurityGroup {
       this.name = name;
       this.description = description;
       // if empty, leave null so this doesn't serialize to json
-      this.rules = checkNotNull(rules, "rules").size() == 0 ? null : ImmutableSet.copyOf(rules);
+      this.rules = checkNotNull(rules, "rules").isEmpty() ? null : ImmutableSet.copyOf(rules);
    }
 
    public String getId() {
@@ -175,12 +175,12 @@ public class SecurityGroup {
                && Objects.equal(this.description, that.description)
                && Objects.equal(this.rules, that.rules);
    }
-   
+
    protected ToStringHelper string() {
       return MoreObjects.toStringHelper(this)
             .add("id", id).add("tenantId", tenantId).add("name", name).add("description", description).add("rules", rules);
    }
-   
+
    @Override
    public String toString() {
       return string().toString();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java
----------------------------------------------------------------------
diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java
index 0ed8a69..f3f7a6f 100644
--- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java
+++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/CreateServerOptions.java
@@ -136,11 +136,11 @@ public class CreateServerOptions implements MapBinder {
    protected ToStringHelper string() {
       ToStringHelper toString = MoreObjects.toStringHelper("").omitNullValues();
       toString.add("keyName", keyName);
-      if (securityGroupNames.size() > 0)
+      if (!securityGroupNames.isEmpty())
          toString.add("securityGroupNames", securityGroupNames);
-      if (metadata.size() > 0)
+      if (!metadata.isEmpty())
          toString.add("metadata", metadata);
-      if (personality.size() > 0)
+      if (!personality.isEmpty())
          toString.add("personality", personality);
       if (adminPass != null)
          toString.add("adminPassPresent", true);
@@ -191,9 +191,9 @@ public class CreateServerOptions implements MapBinder {
       ServerRequest server = new ServerRequest(checkNotNull(postParams.get("name"), "name parameter not present").toString(),
             checkNotNull(postParams.get("imageRef"), "imageRef parameter not present").toString(),
             checkNotNull(postParams.get("flavorRef"), "flavorRef parameter not present").toString());
-      if (metadata.size() > 0)
+      if (!metadata.isEmpty())
          server.metadata = metadata;
-      if (personality.size() > 0)
+      if (!personality.isEmpty())
          server.personality = personality;
       if (keyName != null)
          server.key_name = keyName;
@@ -203,7 +203,7 @@ public class CreateServerOptions implements MapBinder {
          server.user_data = base64().encode(userData);
       if (configDrive)
          server.configDrive = "true";
-      if (securityGroupNames.size() > 0) {
+      if (!securityGroupNames.isEmpty()) {
          server.securityGroupNames = Sets.newLinkedHashSet();
          for (String groupName : securityGroupNames) {
             server.securityGroupNames.add(new NamedThingy(groupName));

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/domain/LoadBalancer.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/domain/LoadBalancer.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/domain/LoadBalancer.java
index 7bd638d..245282e 100644
--- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/domain/LoadBalancer.java
+++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/domain/LoadBalancer.java
@@ -126,15 +126,15 @@ public class LoadBalancer extends BaseLoadBalancer<Node, LoadBalancer> {
    }
 
    /**
-    * Broken out as a separate field because when LoadBalancers are returned from 
+    * Broken out as a separate field because when LoadBalancers are returned from
     * {@link LoadBalancerApi#list()}, no Nodes are returned (so you can't rely on getNodes().size())
     * but a nodeCount is returned. When {@link LoadBalancerApi#get(int)} is called, nodes are
     * returned but no nodeCount is returned.
-    *  
-    * @return The number of Nodes in this LoadBalancer 
+    *
+    * @return The number of Nodes in this LoadBalancer
     */
    public int getNodeCount() {
-      return nodes.size() > 0 ? nodes.size() : nodeCount;
+      return !nodes.isEmpty() ? nodes.size() : nodeCount;
    }
 
    /**
@@ -165,7 +165,7 @@ public class LoadBalancer extends BaseLoadBalancer<Node, LoadBalancer> {
    public Metadata getMetadata() {
       return metadata;
    }
-   
+
    public URI getUri() {
       return uri;
    }
@@ -343,7 +343,7 @@ public class LoadBalancer extends BaseLoadBalancer<Node, LoadBalancer> {
          this.metadata = checkNotNull(metadata, "metadata");
          return this;
       }
-      
+
       public Builder uri(URI uri) {
          this.uri = uri;
          return this;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseAlgorithms.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseAlgorithms.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseAlgorithms.java
index 878e150..0d5ce4e 100644
--- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseAlgorithms.java
+++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseAlgorithms.java
@@ -45,17 +45,17 @@ public class ParseAlgorithms implements Function<HttpResponse, List<String>>, In
    @Override
    public List<String> apply(HttpResponse response) {
       Map<String, List<Map<String, String>>> map = json.apply(response);
-      
-      if (map == null || map.size() == 0)
+
+      if (map == null || map.isEmpty())
          throw new HttpResponseException("Unexpected JSON format returned.", null, response);
-      
+
       List<Map<String, String>> list = Iterables.get(map.values(), 0);
       List<String> algorithms = Lists.newArrayList();
-      
+
       for (Map<String, String> nameAlgorithmPair : list) {
          algorithms.add(Iterables.get(nameAlgorithmPair.values(), 0));
       }
-      
+
       return algorithms;
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancer.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancer.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancer.java
index 2112c7c..06ddb73 100644
--- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancer.java
+++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancer.java
@@ -51,7 +51,7 @@ public class ParseLoadBalancer implements Function<HttpResponse, LoadBalancer>,
    public LoadBalancer apply(HttpResponse arg0) {
       checkState(convertLB != null, "convertLB should be set by InvocationContext");
       Map<String, LB> map = json.apply(arg0);
-      if (map == null || map.size() == 0)
+      if (map == null || map.isEmpty())
          return null;
       LB lb = Iterables.get(map.values(), 0);
       return convertLB.apply(lb);
@@ -64,9 +64,9 @@ public class ParseLoadBalancer implements Function<HttpResponse, LoadBalancer>,
 
    ParseLoadBalancer setEndpointAndRegion(URI endpoint) {
       String region = endpoint.getHost().substring(0, endpoint.getHost().indexOf('.'));
-      
+
       this.convertLB = factory.createForEndpointAndRegion(endpoint, region);
-      
+
       return this;
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancers.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancers.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancers.java
index 92c1087..fcbc099 100644
--- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancers.java
+++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseLoadBalancers.java
@@ -61,7 +61,7 @@ public class ParseLoadBalancers implements Function<HttpResponse, IterableWithMa
    public IterableWithMarker<LoadBalancer> apply(HttpResponse arg0) {
       LoadBalancers lbs = json.apply(arg0);
 
-      if (lbs.size() == 0)
+      if (lbs.isEmpty())
          return IterableWithMarkers.EMPTY;
 
       Iterable<LoadBalancer> transform = Iterables.transform(lbs, convertLB);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNestedBoolean.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNestedBoolean.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNestedBoolean.java
index ab95657..8d92d5f 100644
--- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNestedBoolean.java
+++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNestedBoolean.java
@@ -43,10 +43,10 @@ public class ParseNestedBoolean implements Function<HttpResponse, Boolean>, Invo
    @Override
    public Boolean apply(HttpResponse response) {
       Map<String, Map<String, Boolean>> map = json.apply(response);
-      
-      if (map == null || map.size() == 0)
+
+      if (map == null || map.isEmpty())
          throw new HttpResponseException("Unexpected JSON format returned.", null, response);
-      
+
       return Iterables.get(Iterables.get(map.values(), 0).values(), 0);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNestedString.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNestedString.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNestedString.java
index b4ca33e..17ab094 100644
--- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNestedString.java
+++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNestedString.java
@@ -44,7 +44,7 @@ public class ParseNestedString implements Function<HttpResponse, String>, Invoca
    public String apply(HttpResponse response) {
       Map<String, Map<String, String>> map = json.apply(response);
       
-      if (map == null || map.size() == 0)
+      if (map == null || map.isEmpty())
          throw new HttpResponseException("Unexpected JSON format returned.", null, response);
       
       return Iterables.get(Iterables.get(map.values(), 0).values(), 0);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNode.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNode.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNode.java
index 8e32dc9..5af5477 100644
--- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNode.java
+++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseNode.java
@@ -47,10 +47,10 @@ public class ParseNode implements Function<HttpResponse, Node>, InvocationContex
    @Override
    public Node apply(HttpResponse response) {
       Map<String, NodeWithCLBMetadata> map = json.apply(response);
-      
-      if (map == null || map.size() == 0)
+
+      if (map == null || map.isEmpty())
          return null;
-      
+
       NodeWithCLBMetadata nodeWithCLBMetadata = Iterables.get(map.values(), 0);
       Node node = Node.builder()
             .address(nodeWithCLBMetadata.getAddress())
@@ -62,7 +62,7 @@ public class ParseNode implements Function<HttpResponse, Node>, InvocationContex
             .status(nodeWithCLBMetadata.status)
             .metadata(ParseMetadata.transformCLBMetadataToMetadata(nodeWithCLBMetadata.metadata))
             .build();
-      
+
       return node;
    }
 
@@ -70,7 +70,7 @@ public class ParseNode implements Function<HttpResponse, Node>, InvocationContex
    public ParseNode setContext(HttpRequest request) {
       return this;
    }
-   
+
    /**
     * This class is here only to deal with the metadata format in CLB.
     */

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseSessionPersistence.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseSessionPersistence.java b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseSessionPersistence.java
index 5e0c274..8c0b578 100644
--- a/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseSessionPersistence.java
+++ b/apis/rackspace-cloudloadbalancers/src/main/java/org/jclouds/rackspace/cloudloadbalancers/v1/functions/ParseSessionPersistence.java
@@ -44,10 +44,10 @@ public class ParseSessionPersistence implements Function<HttpResponse, SessionPe
    @Override
    public SessionPersistence apply(HttpResponse response) {
       Map<String, Map<String, SessionPersistence>> map = json.apply(response);
-      
-      if (map == null || map.size() == 0)
+
+      if (map == null || map.isEmpty())
          throw new HttpResponseException("Unexpected connection logging format returned.", null, response);
-      else if (Iterables.get(map.values(), 0).size() == 0)
+      else if (Iterables.get(map.values(), 0).isEmpty())
          return null;
       else
          return Iterables.get(Iterables.get(map.values(), 0).values(), 0);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java
index b343a13..f080498 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/LoadBalancerApiLiveTest.java
@@ -122,7 +122,7 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
             assert lb.getStatus() != null : lb;
             assert lb.getCreated() != null : lb;
             assert lb.getUpdated() != null : lb;
-            assert lb.getVirtualIPs().size() > 0 : lb;
+            assert !lb.getVirtualIPs().isEmpty() : lb;
             // node info not available during list;
             assert lb.getNodes().size() == 0 : lb;
 
@@ -139,7 +139,7 @@ public class LoadBalancerApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
                assertEquals(getDetails.getUpdated(), lb.getUpdated());
                assertEquals(getDetails.getVirtualIPs(), lb.getVirtualIPs());
                // node info not available during list;
-               assert getDetails.getNodes().size() > 0 : lb;
+               assert !getDetails.getNodes().isEmpty() : lb;
             } catch (AssertionError e) {
                throw new AssertionError(String.format("%s\n%s - %s", e.getMessage(), getDetails, lb));
             }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiLiveTest.java b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiLiveTest.java
index 1524829..c82898d 100644
--- a/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiLiveTest.java
+++ b/apis/rackspace-cloudloadbalancers/src/test/java/org/jclouds/rackspace/cloudloadbalancers/v1/features/NodeApiLiveTest.java
@@ -51,7 +51,7 @@ public class NodeApiLiveTest extends BaseCloudLoadBalancersApiLiveTest {
    private Map<LoadBalancer, Set<Node>> nodes = Maps.newHashMap();
 
    public void testCreateLoadBalancers() {
-      assertTrue(api.getConfiguredRegions().size() > 0, "Need to have some regions!");
+      assertTrue(!api.getConfiguredRegions().isEmpty(), "Need to have some regions!");
       Logger.getAnonymousLogger().info("running against regions " + api.getConfiguredRegions());
       for (String region : api.getConfiguredRegions()) {
          Logger.getAnonymousLogger().info("starting lb in region " + region);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/route53/src/test/java/org/jclouds/route53/features/HostedZoneApiLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/route53/src/test/java/org/jclouds/route53/features/HostedZoneApiLiveTest.java b/apis/route53/src/test/java/org/jclouds/route53/features/HostedZoneApiLiveTest.java
index ad34b4e..2cd50ac 100644
--- a/apis/route53/src/test/java/org/jclouds/route53/features/HostedZoneApiLiveTest.java
+++ b/apis/route53/src/test/java/org/jclouds/route53/features/HostedZoneApiLiveTest.java
@@ -77,11 +77,11 @@ public class HostedZoneApiLiveTest extends BaseRoute53ApiLiveTest {
       try {
          checkHostedZone(newHostedZone.getZone());
          assertEquals(newHostedZone.getChange().getStatus(), PENDING, "invalid status on zone " + newHostedZone);
-         assertTrue(newHostedZone.getNameServers().size() > 0, "no name servers for zone " + newHostedZone);
+         assertTrue(!newHostedZone.getNameServers().isEmpty(), "no name servers for zone " + newHostedZone);
          assertEquals(newHostedZone.getZone().getName(), name);
          assertEquals(newHostedZone.getZone().getCallerReference(), nonce);
          assertEquals(newHostedZone.getZone().getComment().get(), comment);
-         
+
          assertTrue(inSync.apply(newHostedZone.getChange()), "zone didn't sync " + newHostedZone);
       } finally {
          Change delete = api().delete(newHostedZone.getZone().getId());

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/s3/src/main/java/org/jclouds/s3/config/S3RestClientModule.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/config/S3RestClientModule.java b/apis/s3/src/main/java/org/jclouds/s3/config/S3RestClientModule.java
index 707b04a..9086681 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/config/S3RestClientModule.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/config/S3RestClientModule.java
@@ -86,7 +86,7 @@ public class S3RestClientModule<S extends S3Client, A extends S3AsyncClient> ext
    protected CacheLoader<String, Optional<String>> bucketToRegion(@Region Supplier<Set<String>> regionSupplier,
             final S3Client client) {
       Set<String> regions = regionSupplier.get();
-      if (regions.size() == 0) {
+      if (regions.isEmpty()) {
          return new CacheLoader<String, Optional<String>>() {
 
             @Override

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/s3/src/test/java/org/jclouds/s3/internal/StubS3AsyncClient.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/test/java/org/jclouds/s3/internal/StubS3AsyncClient.java b/apis/s3/src/test/java/org/jclouds/s3/internal/StubS3AsyncClient.java
index 5e94924..bbd79ff 100644
--- a/apis/s3/src/test/java/org/jclouds/s3/internal/StubS3AsyncClient.java
+++ b/apis/s3/src/test/java/org/jclouds/s3/internal/StubS3AsyncClient.java
@@ -51,6 +51,7 @@ import org.jclouds.http.options.GetOptions;
 import org.jclouds.javax.annotation.Nullable;
 import org.jclouds.lifecycle.Closer;
 import org.jclouds.s3.S3AsyncClient;
+import org.jclouds.s3.blobstore.S3AsyncBlobStore;
 import org.jclouds.s3.blobstore.functions.BlobToObject;
 import org.jclouds.s3.blobstore.functions.BlobToObjectMetadata;
 import org.jclouds.s3.blobstore.functions.BucketToContainerListOptions;
@@ -223,7 +224,7 @@ public class StubS3AsyncClient implements S3AsyncClient {
     * to match S3 which substitutes each email address grantee with that user's corresponding ID. In
     * short, although you can PUT email address grantees, these are actually subsequently returned
     * by S3 as canonical user grantees.
-    * 
+    *
     * @param acl
     * @return
     */
@@ -258,7 +259,7 @@ public class StubS3AsyncClient implements S3AsyncClient {
    public ListenableFuture<Boolean> deleteBucketIfEmpty(String bucketName) {
       Boolean returnVal = true;
       if (containerToBlobs.containsKey(bucketName)) {
-         if (containerToBlobs.get(bucketName).size() == 0)
+         if (containerToBlobs.get(bucketName).isEmpty())
             containerToBlobs.remove(bucketName);
          else
             returnVal = false;

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/sqs/src/main/java/org/jclouds/sqs/binders/BindAttributeNamesToIndexedFormParams.java
----------------------------------------------------------------------
diff --git a/apis/sqs/src/main/java/org/jclouds/sqs/binders/BindAttributeNamesToIndexedFormParams.java b/apis/sqs/src/main/java/org/jclouds/sqs/binders/BindAttributeNamesToIndexedFormParams.java
index c713765..0617f9c 100644
--- a/apis/sqs/src/main/java/org/jclouds/sqs/binders/BindAttributeNamesToIndexedFormParams.java
+++ b/apis/sqs/src/main/java/org/jclouds/sqs/binders/BindAttributeNamesToIndexedFormParams.java
@@ -42,7 +42,7 @@ public class BindAttributeNamesToIndexedFormParams implements Binder {
          builder.put("AttributeName." + (i++ + 1), o.toString());
       }
       ImmutableMultimap<String, String> forms = builder.build();
-      return (R) (forms.size() == 0 ? request : request.toBuilder().replaceFormParams(forms).build());
+      return (R) (forms.isEmpty() ? request : request.toBuilder().replaceFormParams(forms).build());
    }
 
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/sqs/src/main/java/org/jclouds/sqs/options/CreateQueueOptions.java
----------------------------------------------------------------------
diff --git a/apis/sqs/src/main/java/org/jclouds/sqs/options/CreateQueueOptions.java b/apis/sqs/src/main/java/org/jclouds/sqs/options/CreateQueueOptions.java
index 1f76ced..d02b49f 100644
--- a/apis/sqs/src/main/java/org/jclouds/sqs/options/CreateQueueOptions.java
+++ b/apis/sqs/src/main/java/org/jclouds/sqs/options/CreateQueueOptions.java
@@ -28,7 +28,7 @@ import com.google.common.collect.Multimap;
 
 /**
  * Options used to receive a message from a queue.
- * 
+ *
  * @see <a
  *      href="http://docs.amazonwebservices.com/AWSSimpleQueueService/2011-10-01/APIReference/Query_QueryCreateQueue.html"
  *      >docs</a>
@@ -41,10 +41,10 @@ public class CreateQueueOptions extends BaseHttpRequestOptions implements Clonea
     * The duration (in seconds) that the received messages are hidden from
     * subsequent retrieve requests after being retrieved by a CreateQueue
     * request.
-    * 
+    *
     * @param visibilityTimeout
     *           Constraints: 0 to 43200 (maximum 12 hours)
-    * 
+    *
     *           Default: The visibility timeout for the queue
     */
    public CreateQueueOptions visibilityTimeout(int visibilityTimeout) {
@@ -94,7 +94,7 @@ public class CreateQueueOptions extends BaseHttpRequestOptions implements Clonea
    public Multimap<String, String> buildFormParameters() {
       Multimap<String, String> params = super.buildFormParameters();
       ImmutableMap<String, String> attributes = this.attributes.build();
-      if (attributes.size() > 0) {
+      if (!attributes.isEmpty()) {
          int nameIndex = 1;
          for (Entry<String, String> attribute : attributes.entrySet()) {
             params.put("Attribute." + nameIndex + ".Name", attribute.getKey());
@@ -139,7 +139,7 @@ public class CreateQueueOptions extends BaseHttpRequestOptions implements Clonea
    @Override
    public String toString() {
       ImmutableMap<String, String> attributes = this.attributes.build();
-      return MoreObjects.toStringHelper(this).omitNullValues().add("attributes", attributes.size() > 0 ? attributes : null)
+      return MoreObjects.toStringHelper(this).omitNullValues().add("attributes", !attributes.isEmpty() ? attributes : null)
             .toString();
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/sqs/src/main/java/org/jclouds/sqs/options/ReceiveMessageOptions.java
----------------------------------------------------------------------
diff --git a/apis/sqs/src/main/java/org/jclouds/sqs/options/ReceiveMessageOptions.java b/apis/sqs/src/main/java/org/jclouds/sqs/options/ReceiveMessageOptions.java
index 0001d2d..a626d56 100644
--- a/apis/sqs/src/main/java/org/jclouds/sqs/options/ReceiveMessageOptions.java
+++ b/apis/sqs/src/main/java/org/jclouds/sqs/options/ReceiveMessageOptions.java
@@ -25,7 +25,7 @@ import com.google.common.collect.Multimap;
 
 /**
  * Options used to receive a message from a queue.
- * 
+ *
  * @see <a
  *      href="http://docs.amazonwebservices.com/AWSSimpleQueueService/2011-10-01/APIReference/Query_QueryReceiveMessage.html"
  *      >docs</a>
@@ -39,10 +39,10 @@ public class ReceiveMessageOptions extends BaseHttpRequestOptions implements Clo
     * The duration (in seconds) that the received messages are hidden from
     * subsequent retrieve requests after being retrieved by a ReceiveMessage
     * request.
-    * 
+    *
     * @param visibilityTimeout
     *           Constraints: 0 to 43200 (maximum 12 hours)
-    * 
+    *
     *           Default: The visibility timeout for the queue
     */
    public ReceiveMessageOptions visibilityTimeout(Integer visibilityTimeout) {
@@ -52,18 +52,18 @@ public class ReceiveMessageOptions extends BaseHttpRequestOptions implements Clo
 
    /**
     * The attribute you want to get.
-    * 
+    *
     * All - returns all values.
-    * 
+    *
     * SenderId - returns the AWS account number (or the IP address, if anonymous
     * access is allowed) of the sender.
-    * 
+    *
     * SentTimestamp - returns the time when the message was sent (epoch time in
     * milliseconds).
-    * 
+    *
     * ApproximateReceiveCount - returns the number of times a message has been
     * received but not deleted.
-    * 
+    *
     * ApproximateFirstReceiveTimestamp - returns the time when the message was
     * first received (epoch time in milliseconds).
     */
@@ -110,7 +110,7 @@ public class ReceiveMessageOptions extends BaseHttpRequestOptions implements Clo
       if (visibilityTimeout != null)
          params.put("VisibilityTimeout", visibilityTimeout.toString());
       ImmutableSet<String> attributes = this.attributes.build();
-      if (attributes.size() > 0) {
+      if (!attributes.isEmpty()) {
          int nameIndex = 1;
          for (String attribute : attributes) {
             params.put("AttributeName." + nameIndex, attribute);
@@ -156,6 +156,6 @@ public class ReceiveMessageOptions extends BaseHttpRequestOptions implements Clo
    public String toString() {
       ImmutableSet<String> attributes = this.attributes.build();
       return MoreObjects.toStringHelper(this).omitNullValues().add("visibilityTimeout", visibilityTimeout)
-            .add("attributes", attributes.size() > 0 ? attributes : null).toString();
+            .add("attributes", !attributes.isEmpty() ? attributes : null).toString();
    }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/sts/src/main/java/org/jclouds/aws/binders/BindMapToIndexedFormParams.java
----------------------------------------------------------------------
diff --git a/apis/sts/src/main/java/org/jclouds/aws/binders/BindMapToIndexedFormParams.java b/apis/sts/src/main/java/org/jclouds/aws/binders/BindMapToIndexedFormParams.java
index 149988c..202c335 100644
--- a/apis/sts/src/main/java/org/jclouds/aws/binders/BindMapToIndexedFormParams.java
+++ b/apis/sts/src/main/java/org/jclouds/aws/binders/BindMapToIndexedFormParams.java
@@ -67,7 +67,7 @@ public class BindMapToIndexedFormParams implements Binder {
          amazonOneBasedIndex++;
       }
       Multimap<String, String> forms = Multimaps.forMap(builder.build());
-      return forms.size() == 0 ? request : (R) request.toBuilder().replaceFormParams(forms).build();
+      return forms.isEmpty() ? request : (R) request.toBuilder().replaceFormParams(forms).build();
    }
 
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/sts/src/main/java/org/jclouds/aws/binders/BindTableToIndexedFormParams.java
----------------------------------------------------------------------
diff --git a/apis/sts/src/main/java/org/jclouds/aws/binders/BindTableToIndexedFormParams.java b/apis/sts/src/main/java/org/jclouds/aws/binders/BindTableToIndexedFormParams.java
index b6adfe3..6c0f690 100644
--- a/apis/sts/src/main/java/org/jclouds/aws/binders/BindTableToIndexedFormParams.java
+++ b/apis/sts/src/main/java/org/jclouds/aws/binders/BindTableToIndexedFormParams.java
@@ -70,7 +70,7 @@ public class BindTableToIndexedFormParams implements Binder {
          amazonOneBasedIndex++;
       }
       Multimap<String, String> forms = Multimaps.forMap(builder.build());
-      return forms.size() == 0 ? request : (R) request.toBuilder().replaceFormParams(forms).build();
+      return forms.isEmpty() ? request : (R) request.toBuilder().replaceFormParams(forms).build();
    }
 
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/sts/src/main/java/org/jclouds/aws/util/AWSUtils.java
----------------------------------------------------------------------
diff --git a/apis/sts/src/main/java/org/jclouds/aws/util/AWSUtils.java b/apis/sts/src/main/java/org/jclouds/aws/util/AWSUtils.java
index 8b86598..a93f845 100644
--- a/apis/sts/src/main/java/org/jclouds/aws/util/AWSUtils.java
+++ b/apis/sts/src/main/java/org/jclouds/aws/util/AWSUtils.java
@@ -130,7 +130,7 @@ public class AWSUtils {
          builder.put(prefix + "." + (i++ + 1), checkNotNull(o.toString(), prefix.toLowerCase() + "s[" + i + "]"));
       }
       ImmutableMultimap<String, String> forms = builder.build();
-      return forms.size() == 0 ? request : (R) request.toBuilder().replaceFormParams(forms).build();
+      return forms.isEmpty() ? request : (R) request.toBuilder().replaceFormParams(forms).build();
    }
 
    public static <R extends HttpRequest> R indexStringArrayToFormValuesWithPrefix(R request, String prefix, Object input) {
@@ -142,7 +142,7 @@ public class AWSUtils {
          builder.put(prefix + "." + (i + 1), checkNotNull(values[i], prefix.toLowerCase() + "s[" + i + "]"));
       }
       ImmutableMultimap<String, String> forms = builder.build();
-      return forms.size() == 0 ? request : (R) request.toBuilder().replaceFormParams(forms).build();
+      return forms.isEmpty() ? request : (R) request.toBuilder().replaceFormParams(forms).build();
    }
 
    public static <R extends HttpRequest> R indexMapToFormValuesWithPrefix(R request, String prefix, String keySuffix, String valueSuffix, Object input) {
@@ -158,7 +158,7 @@ public class AWSUtils {
          i++;
       }
       ImmutableMultimap<String, String> forms = builder.build();
-      return forms.size() == 0 ? request : (R) request.toBuilder().replaceFormParams(forms).build();
+      return forms.isEmpty() ? request : (R) request.toBuilder().replaceFormParams(forms).build();
    }
 
    public static <R extends HttpRequest> R indexMultimapToFormValuesWithPrefix(R request, String prefix, String keySuffix, String valueSuffix, Object input) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/swift/src/main/java/org/jclouds/openstack/swift/blobstore/strategy/internal/ParallelMultipartUploadStrategy.java
----------------------------------------------------------------------
diff --git a/apis/swift/src/main/java/org/jclouds/openstack/swift/blobstore/strategy/internal/ParallelMultipartUploadStrategy.java b/apis/swift/src/main/java/org/jclouds/openstack/swift/blobstore/strategy/internal/ParallelMultipartUploadStrategy.java
index 53465f4..bf11489 100644
--- a/apis/swift/src/main/java/org/jclouds/openstack/swift/blobstore/strategy/internal/ParallelMultipartUploadStrategy.java
+++ b/apis/swift/src/main/java/org/jclouds/openstack/swift/blobstore/strategy/internal/ParallelMultipartUploadStrategy.java
@@ -207,7 +207,7 @@ public class ParallelMultipartUploadStrategy implements AsyncMultipartUploadStra
                                 }
                                 latch.await();
                                 // handling retries
-                                while (errors.get() <= maxRetries && toRetry.size() > 0) {
+                                while (errors.get() <= maxRetries && !toRetry.isEmpty()) {
                                     int atOnce = Math.min(Math.min(toRetry.size(), errors.get()), parallelDegree);
                                     CountDownLatch retryLatch = new CountDownLatch(atOnce);
                                     for (int i = 0; i < atOnce; i++) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/binders/BindInstantiateVAppTemplateParamsToXmlPayload.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/binders/BindInstantiateVAppTemplateParamsToXmlPayload.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/binders/BindInstantiateVAppTemplateParamsToXmlPayload.java
index 08e5443..5576ca0 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/binders/BindInstantiateVAppTemplateParamsToXmlPayload.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/binders/BindInstantiateVAppTemplateParamsToXmlPayload.java
@@ -95,7 +95,7 @@ public class BindInstantiateVAppTemplateParamsToXmlPayload implements MapBinder
       InstantiateVAppTemplateOptions options = findOptionsInArgsOrNull(gRequest);
 
       if (options != null) {
-         if (options.getNetworkConfig().size() > 0)
+         if (!options.getNetworkConfig().isEmpty())
             networkConfig = ImmutableSet
                      .copyOf(transform(options.getNetworkConfig(), networkConfigDecorator));
       } else {
@@ -125,7 +125,7 @@ public class BindInstantiateVAppTemplateParamsToXmlPayload implements MapBinder
          VAppTemplate vAppTemplate = templateCache.getUnchecked(template);
          checkArgument(vAppTemplate != null, "vAppTemplate %s not found!", template);
          vms = vAppTemplate.getChildren();
-         checkArgument(vms.size() > 0, "no vms found in vAppTemplate %s", vAppTemplate);
+         checkArgument(!vms.isEmpty(), "no vms found in vAppTemplate %s", vAppTemplate);
       }
       return vms;
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/functions/HardwareForVApp.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/functions/HardwareForVApp.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/functions/HardwareForVApp.java
index ebfb010..6ec2bf8 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/functions/HardwareForVApp.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/functions/HardwareForVApp.java
@@ -53,7 +53,7 @@ public class HardwareForVApp implements Function<VApp, Hardware> {
    public Hardware apply(VApp from) {
       checkNotNull(from, "VApp");
       // TODO make this work with composite vApps
-      Vm vm = from.getChildren().size() == 0 ? null : Iterables.get(from.getChildren(), 0);
+      Vm vm = from.getChildren().isEmpty() ? null : Iterables.get(from.getChildren(), 0);
       if (vm == null)
          return null;
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/functions/ValidateVAppTemplateAndReturnEnvelopeOrThrowIllegalArgumentException.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/functions/ValidateVAppTemplateAndReturnEnvelopeOrThrowIllegalArgumentException.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/functions/ValidateVAppTemplateAndReturnEnvelopeOrThrowIllegalArgumentException.java
index dce8306..6114281 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/functions/ValidateVAppTemplateAndReturnEnvelopeOrThrowIllegalArgumentException.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/functions/ValidateVAppTemplateAndReturnEnvelopeOrThrowIllegalArgumentException.java
@@ -63,7 +63,7 @@ public class ValidateVAppTemplateAndReturnEnvelopeOrThrowIllegalArgumentExceptio
       Envelope ovf;
       try {
          ovf = envelopes.get(from.getHref());
-         checkArgument(ovf.getVirtualSystem().getVirtualHardwareSections().size() > 0,
+         checkArgument(!ovf.getVirtualSystem().getVirtualHardwareSections().isEmpty(),
                   "no hardware sections exist in ovf %s", ovf);
       } catch (ExecutionException e) {
          throw new IllegalArgumentException("no ovf envelope found for: " + from, e);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/strategy/InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployAndPowerOn.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/strategy/InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployAndPowerOn.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/strategy/InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployAndPowerOn.java
index e8b9fcd..574f3e7 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/strategy/InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployAndPowerOn.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/strategy/InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployAndPowerOn.java
@@ -85,7 +85,7 @@ public class InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployA
       this.networkConfigurationForNetworkAndOptions = networkConfigurationForNetworkAndOptions;
       this.buildVersion = buildVersion;
    }
-   
+
    /**
     * per john ellis at bluelock, vCloud Director 1.5 is more strict than earlier versions.
     * <p/>
@@ -95,19 +95,19 @@ public class InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployA
     */
    public static enum ComputerNameValidator  {
       INSTANCE;
-      
+
       private DnsNameValidator validator;
 
       ComputerNameValidator() {
          this.validator = new  DnsNameValidator(3, 15);
       }
-      
+
       public void validate(@Nullable String t) throws IllegalArgumentException {
          this.validator.validate(t);
       }
 
    }
-   
+
    public NodeAndInitialCredentials<VApp> createNodeWithGroupEncodedIntoName(String group, String name, Template template) {
       // no sense waiting until failures occur later
       ComputerNameValidator.INSTANCE.validate(name);
@@ -156,11 +156,11 @@ public class InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployA
                getCredentialsFrom(vAppResponse));
 
    }
-  
+
    @VisibleForTesting
    protected VApp instantiateVAppFromTemplate(String name, Template template) {
       VCloudTemplateOptions vOptions = VCloudTemplateOptions.class.cast(template.getOptions());
-      
+
       URI templateId = URI.create(template.getImage().getId());
 
       VAppTemplate vAppTemplate = vAppTemplates.getUnchecked(templateId);
@@ -175,7 +175,7 @@ public class InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployA
 
       Network networkToConnect = get(vAppTemplate.getNetworkSection().getNetworks(), 0);
 
-      
+
       NetworkConfig config = networkConfigurationForNetworkAndOptions.apply(networkToConnect, vOptions);
 
       // note that in VCD 1.5, the network name after instantiation will be the same as the parent
@@ -217,7 +217,7 @@ public class InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployA
       }
 
    };
-   
+
    public void waitForTask(Task task) {
       if (!successTester.apply(task.getHref())) {
          throw new TaskStillRunningException(task);
@@ -251,7 +251,7 @@ public class InstantiateVAppTemplateWithGroupEncodedIntoNameThenCustomizeDeployA
       Vm vm = get(vApp.getChildren(), 0);
 
       NetworkConnectionSection net = vm.getNetworkConnectionSection();
-      checkArgument(net.getConnections().size() > 0, "no connections on vm %s", vm);
+      checkArgument(!net.getConnections().isEmpty(), "no connections on vm %s", vm);
 
       NetworkConnection toConnect = findWithPoolAllocationOrFirst(net);
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/strategy/VCloudComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/strategy/VCloudComputeServiceAdapter.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/strategy/VCloudComputeServiceAdapter.java
index cd636df..4d300c8 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/strategy/VCloudComputeServiceAdapter.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/strategy/VCloudComputeServiceAdapter.java
@@ -179,13 +179,13 @@ public class VCloudComputeServiceAdapter implements ComputeServiceAdapter<VApp,
       URI id = URI.create(in);
       return client.getVAppApi().getVApp(id);
    }
-   
+
    @Override
    public VAppTemplate getImage(String in) {
       URI id = URI.create(in);
       return client.getVAppTemplateApi().getVAppTemplate(id);
    }
-   
+
    @Override
    public void destroyNode(String id) {
       URI vappId = URI.create(checkNotNull(id, "node.id"));
@@ -215,7 +215,7 @@ public class VCloudComputeServiceAdapter implements ComputeServiceAdapter<VApp,
 
    VApp waitForPendingTasksToComplete(URI vappId) {
       VApp vApp = client.getVAppApi().getVApp(vappId);
-      if (vApp.getTasks().size() == 0)
+      if (vApp.getTasks().isEmpty())
          return vApp;
       for (Task task : vApp.getTasks())
          waitForTask(task);
@@ -224,7 +224,7 @@ public class VCloudComputeServiceAdapter implements ComputeServiceAdapter<VApp,
 
    VApp cancelAnyRunningTasks(URI vappId) {
       VApp vApp = client.getVAppApi().getVApp(vappId);
-      if (vApp.getTasks().size() == 0)
+      if (vApp.getTasks().isEmpty())
          return vApp;
       for (Task task : vApp.getTasks()) {
          try {
@@ -238,7 +238,7 @@ public class VCloudComputeServiceAdapter implements ComputeServiceAdapter<VApp,
    }
 
    public void waitForTask(Task task) {
-      if (!successTester.apply(task.getHref())) 
+      if (!successTester.apply(task.getHref()))
          throw new TaskStillRunningException(task);
    }
 

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/util/VCloudComputeUtils.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/util/VCloudComputeUtils.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/util/VCloudComputeUtils.java
index 905565e..7d2d80f 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/util/VCloudComputeUtils.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/compute/util/VCloudComputeUtils.java
@@ -44,7 +44,7 @@ public class VCloudComputeUtils {
 
    public static CIMOperatingSystem toComputeOs(VApp vApp) {
       // TODO we need to change the design so that it doesn't assume single-vms
-      return vApp.getChildren().size() > 0 ? toComputeOs(Iterables.get(vApp.getChildren(), 0)) : null;
+      return !vApp.getChildren().isEmpty() ? toComputeOs(Iterables.get(vApp.getChildren(), 0)) : null;
    }
 
    public static CIMOperatingSystem toComputeOs(Vm vm) {
@@ -52,7 +52,7 @@ public class VCloudComputeUtils {
    }
 
    public static String getVirtualSystemIdentifierOfFirstVMIn(VApp vApp) {
-      return vApp.getChildren().size() > 0 ? getVirtualSystemIdentifierOf(Iterables.get(vApp.getChildren(), 0)) : null;
+      return !vApp.getChildren().isEmpty() ? getVirtualSystemIdentifierOf(Iterables.get(vApp.getChildren(), 0)) : null;
    }
 
    public static String getVirtualSystemIdentifierOf(Vm vm) {
@@ -62,11 +62,11 @@ public class VCloudComputeUtils {
    }
 
    public static LoginCredentials getCredentialsFrom(VApp vApp) {
-      return vApp.getChildren().size() > 0 ? getCredentialsFrom(Iterables.get(vApp.getChildren(), 0)) : null;
+      return !vApp.getChildren().isEmpty() ? getCredentialsFrom(Iterables.get(vApp.getChildren(), 0)) : null;
    }
 
    public static LoginCredentials getCredentialsFrom(VAppTemplate vApp) {
-      return vApp.getChildren().size() > 0 ? getCredentialsFrom(Iterables.get(vApp.getChildren(), 0)) : null;
+      return !vApp.getChildren().isEmpty() ? getCredentialsFrom(Iterables.get(vApp.getChildren(), 0)) : null;
    }
 
    public static LoginCredentials getCredentialsFrom(Vm vm) {
@@ -78,7 +78,7 @@ public class VCloudComputeUtils {
 
    public static Set<String> getIpsFromVApp(VApp vApp) {
       // TODO make this work with composite vApps
-      if (vApp.getChildren().size() == 0)
+      if (vApp.getChildren().isEmpty())
          return ImmutableSet.of();
       Builder<String> ips = ImmutableSet.builder();
       Vm vm = Iterables.get(vApp.getChildren(), 0);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/config/VCloudHttpApiModule.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/config/VCloudHttpApiModule.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/config/VCloudHttpApiModule.java
index 1f2f07c..5a98257b 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/config/VCloudHttpApiModule.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/config/VCloudHttpApiModule.java
@@ -122,7 +122,7 @@ public class VCloudHttpApiModule extends HttpApiModule<VCloudApi> {
                   public VCloudSession get() {
                      return login.login();
                   }
-                  
+
                   @Override
                   public String toString() {
                      return MoreObjects.toStringHelper(login).add("method", "login").toString();
@@ -362,7 +362,7 @@ public class VCloudHttpApiModule extends HttpApiModule<VCloudApi> {
          @Override
          public URI get() {
             SortedMap<String, URI> versions = versionService.getSupportedVersions();
-            checkState(versions.size() > 0, "No versions present");
+            checkState(!versions.isEmpty(), "No versions present");
             checkState(versions.containsKey(version), "version " + version + " not present in: " + versions);
             return versions.get(version);
          }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/FirewallService.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/FirewallService.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/FirewallService.java
index fb52cdc..7b71a6a 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/FirewallService.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/FirewallService.java
@@ -45,7 +45,7 @@ public class FirewallService {
 
    /**
     * @return Firewall rules for the network
-    * 
+    *
     * @since vcloud api 0.8
     */
    public List<FirewallRule> getFirewallRules() {
@@ -54,7 +54,7 @@ public class FirewallService {
 
    /**
     * @return true if the service is enabled
-    * 
+    *
     * @since vcloud api 0.9
     */
    @Nullable
@@ -80,7 +80,7 @@ public class FirewallService {
    @Override
    public String toString() {
       ToStringHelper helper = MoreObjects.toStringHelper("").omitNullValues().add("enabled", enabled);
-      if (firewallRules.size() > 0)
+      if (!firewallRules.isEmpty())
          helper.add("firewallRules", firewallRules);
       return helper.toString();
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/IpScope.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/IpScope.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/IpScope.java
index 65a9942..da042fa 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/IpScope.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/IpScope.java
@@ -72,7 +72,7 @@ public class IpScope {
 
    /**
     * @return IP address of the network gateway
-    * 
+    *
     * @since vcloud api 0.8
     */
    @Nullable
@@ -82,7 +82,7 @@ public class IpScope {
 
    /**
     * @return netmask to apply to addresses on the network
-    * 
+    *
     * @since vcloud api 0.8
     */
    @Nullable
@@ -92,7 +92,7 @@ public class IpScope {
 
    /**
     * @return IP address of the primary DNS server for this network
-    * 
+    *
     * @since vcloud api 0.9
     */
    @Nullable
@@ -102,7 +102,7 @@ public class IpScope {
 
    /**
     * @return IP address of the secondary DNS server for this network
-    * 
+    *
     * @since vcloud api 0.9
     */
    @Nullable
@@ -112,7 +112,7 @@ public class IpScope {
 
    /**
     * @return suffix to be applied when resolving hostnames that are not fully‐qualified.
-    * 
+    *
     * @since vcloud api 0.9
     */
    @Nullable
@@ -122,7 +122,7 @@ public class IpScope {
 
    /**
     * @return A container for IpRange elements.
-    * 
+    *
     * @since vcloud api 0.9
     */
    public Set<IpRange> getIpRanges() {
@@ -131,7 +131,7 @@ public class IpScope {
 
    /**
     * @return A list of addresses allocated from any of the specified IpRanges
-    * 
+    *
     * @since vcloud api 0.9
     */
    public Set<String> getAllocatedIpAddresses() {
@@ -161,9 +161,9 @@ public class IpScope {
    public String toString() {
       ToStringHelper helper = MoreObjects.toStringHelper("").omitNullValues().add("inherited", inherited).add("gateway", gateway)
             .add("netmask", netmask).add("dns1", dns1).add("dns2", dns2).add("dnsSuffix", dnsSuffix);
-      if (ipRanges.size() > 0)
+      if (!ipRanges.isEmpty())
          helper.add("ipRanges", ipRanges);
-      if (allocatedIpAddresses.size() > 0)
+      if (!allocatedIpAddresses.isEmpty())
          helper.add("allocatedIpAddresses", allocatedIpAddresses);
       return helper.toString();
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/NatService.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/NatService.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/NatService.java
index e9fe116..240d780 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/NatService.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/NatService.java
@@ -53,7 +53,7 @@ public class NatService {
 
    /**
     * @return Nat rules for the network
-    * 
+    *
     * @since vcloud api 0.8
     */
    public List<NatRule> getNatRules() {
@@ -62,7 +62,7 @@ public class NatService {
 
    /**
     * @return true if the service is enabled
-    * 
+    *
     * @since vcloud api 0.9
     */
    public boolean isEnabled() {
@@ -71,7 +71,7 @@ public class NatService {
 
    /**
     * @return specifies how Network Address Translation is implemented by the NAT service
-    * 
+    *
     * @since vcloud api 0.9
     */
    @Nullable
@@ -81,7 +81,7 @@ public class NatService {
 
    /**
     * @return specifies how packets are handled by the NAT service.
-    * 
+    *
     * @since vcloud api 0.9
     */
    @Nullable
@@ -109,7 +109,7 @@ public class NatService {
    public String toString() {
       ToStringHelper helper = MoreObjects.toStringHelper("").omitNullValues().add("enabled", enabled)
             .add("type", type).add("policy", policy);
-      if (natRules.size() > 0)
+      if (!natRules.isEmpty())
          helper.add("natRules", natRules);
       return helper.toString();
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/internal/OrgNetworkImpl.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/internal/OrgNetworkImpl.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/internal/OrgNetworkImpl.java
index 8f7a65d..29add2c 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/internal/OrgNetworkImpl.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/domain/network/internal/OrgNetworkImpl.java
@@ -189,9 +189,9 @@ public class OrgNetworkImpl extends ReferenceTypeImpl implements OrgNetwork {
    public ToStringHelper string() {
       ToStringHelper helper = super.string().add("org", org).add("description", description)
             .add("configuration", configuration).add("networkPool", networkPool);
-      if (allowedExternalIpAddresses.size() > 0)
+      if (!allowedExternalIpAddresses.isEmpty())
          helper.add("allowedExternalIpAddresses", allowedExternalIpAddresses);
-      if (tasks.size() > 0)
+      if (!tasks.isEmpty())
          helper.add("tasks", tasks);
       return helper;
    }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/functions/DefaultNetworkNameInTemplate.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/functions/DefaultNetworkNameInTemplate.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/functions/DefaultNetworkNameInTemplate.java
index eeecb8d..11712cc 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/functions/DefaultNetworkNameInTemplate.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/functions/DefaultNetworkNameInTemplate.java
@@ -39,7 +39,7 @@ public class DefaultNetworkNameInTemplate implements Function<VAppTemplate, Stri
    public String apply(VAppTemplate vAppTemplate) {
       checkArgument(vAppTemplate != null, "vAppTemplate was null!");
       Set<Network> networks = vAppTemplate.getNetworkSection().getNetworks();
-      checkArgument(networks.size() > 0, "no networks found in vAppTemplate %s", vAppTemplate);
+      checkArgument(!networks.isEmpty(), "no networks found in vAppTemplate %s", vAppTemplate);
       if (networks.size() > 1)
          logger.warn("multiple networks found for %s, choosing first from: %s", vAppTemplate.getName(), networks);
       return get(networks, 0).getName();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/location/OrgAndVDCToLocationSupplier.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/location/OrgAndVDCToLocationSupplier.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/location/OrgAndVDCToLocationSupplier.java
index 92b3c2e..a0c1505 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/location/OrgAndVDCToLocationSupplier.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/location/OrgAndVDCToLocationSupplier.java
@@ -67,7 +67,7 @@ public class OrgAndVDCToLocationSupplier extends JustProvider implements Locatio
    protected Builder<Location> buildJustProviderOrVDCs() {
       Builder<Location> locations = ImmutableSet.builder();
       Location provider = Iterables.getOnlyElement(super.get());
-      if (orgNameToResource.get().size() == 0)
+      if (orgNameToResource.get().isEmpty())
          return locations.add(provider);
       Map<String, Supplier<Set<String>>> isoCodesById = isoCodesByIdSupplier.get();
       for (ReferenceType org : orgNameToResource.get().values()) {

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/options/InstantiateVAppTemplateOptions.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/options/InstantiateVAppTemplateOptions.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/options/InstantiateVAppTemplateOptions.java
index 9a21caf..090b7a4 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/options/InstantiateVAppTemplateOptions.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/options/InstantiateVAppTemplateOptions.java
@@ -76,7 +76,7 @@ public class InstantiateVAppTemplateOptions {
    /**
     * {@networkConfig VAppTemplate}s have internal networks that can be
     * connected in order to access the internet or other external networks.
-    * 
+    *
     * <h4>default behaviour if you don't use this option</h4> By default, we
     * connect the first internal {@networkConfig
     * org.jclouds.vcloud.domain.VAppTemplate#getNetworkSection network in the
@@ -153,16 +153,16 @@ public class InstantiateVAppTemplateOptions {
    public int hashCode() {
       return Objects.hashCode(networkConfig, customizeOnInstantiate, description, deploy, powerOn);
    }
-   
+
    @Override
    public String toString() {
       return string().toString();
    }
-   
+
    protected ToStringHelper string() {
       ToStringHelper toString = MoreObjects.toStringHelper("").omitNullValues();
       toString.add("customizeOnInstantiate", customizeOnInstantiate).add("description", description);
-      if (networkConfig.size() > 0)
+      if (!networkConfig.isEmpty())
          toString.add("networkConfig", networkConfig);
       if (!deploy)
          toString.add("deploy", deploy);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/suppliers/OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/suppliers/OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/suppliers/OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault.java
index 938b6fd..fbe8406 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/suppliers/OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/suppliers/OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault.java
@@ -46,7 +46,7 @@ public class OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault imp
    @Override
    public ReferenceType apply(Iterable<ReferenceType> referenceTypes) {
       checkNotNull(referenceTypes, "referenceTypes");
-      checkArgument(Iterables.size(referenceTypes) > 0,
+      checkArgument(!Iterables.isEmpty(referenceTypes),
             "No referenceTypes corresponding to configuration key %s present", configurationKey);
       if (Iterables.size(referenceTypes) == 1)
          return Iterables.getLast(referenceTypes);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/apis/vcloud/src/main/java/org/jclouds/vcloud/xml/ovf/VCloudResourceAllocationSettingDataHandler.java
----------------------------------------------------------------------
diff --git a/apis/vcloud/src/main/java/org/jclouds/vcloud/xml/ovf/VCloudResourceAllocationSettingDataHandler.java b/apis/vcloud/src/main/java/org/jclouds/vcloud/xml/ovf/VCloudResourceAllocationSettingDataHandler.java
index b576c1f..5331a34 100644
--- a/apis/vcloud/src/main/java/org/jclouds/vcloud/xml/ovf/VCloudResourceAllocationSettingDataHandler.java
+++ b/apis/vcloud/src/main/java/org/jclouds/vcloud/xml/ovf/VCloudResourceAllocationSettingDataHandler.java
@@ -71,11 +71,11 @@ public class VCloudResourceAllocationSettingDataHandler extends ResourceAllocati
       Map<String, String> attributes = SaxUtils.cleanseAttributes(attrs);
       if (qName.endsWith("Link")) {
          this.edit = Utils.newReferenceType(attributes);
-      } else if (qName.endsWith("HostResource") && attributes.size() > 0) {
+      } else if (qName.endsWith("HostResource") && !attributes.isEmpty()) {
          capacity = Long.parseLong(attributes.get("capacity"));
          busType = Integer.parseInt(attributes.get("busType"));
          busSubType = attributes.get("busSubType");
-      } else if (qName.endsWith("Connection") && attributes.size() > 0) {
+      } else if (qName.endsWith("Connection") && !attributes.isEmpty()) {
          ipAddress = attributes.get("ipAddress");
          primaryNetworkConnection = Boolean.parseBoolean(attributes.get("primaryNetworkConnection"));
          ipAddressingMode = attributes.get("ipAddressingMode");

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/blobstore/src/main/java/org/jclouds/blobstore/LocalAsyncBlobStore.java
----------------------------------------------------------------------
diff --git a/blobstore/src/main/java/org/jclouds/blobstore/LocalAsyncBlobStore.java b/blobstore/src/main/java/org/jclouds/blobstore/LocalAsyncBlobStore.java
index 6ddf6a3..71c2c4e 100644
--- a/blobstore/src/main/java/org/jclouds/blobstore/LocalAsyncBlobStore.java
+++ b/blobstore/src/main/java/org/jclouds/blobstore/LocalAsyncBlobStore.java
@@ -467,7 +467,7 @@ public class LocalAsyncBlobStore extends BaseAsyncBlobStore {
          }
          blob = copyBlob(blob);
 
-         if (options.getRanges() != null && options.getRanges().size() > 0) {
+         if (options.getRanges() != null && !options.getRanges().isEmpty()) {
             byte[] data;
             try {
                data = ByteStreams2.toByteArrayAndClose(blob.getPayload().openStream());

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/MarkersDeleteDirectoryStrategy.java
----------------------------------------------------------------------
diff --git a/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/MarkersDeleteDirectoryStrategy.java b/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/MarkersDeleteDirectoryStrategy.java
index f3b7813..81a6a37 100644
--- a/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/MarkersDeleteDirectoryStrategy.java
+++ b/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/MarkersDeleteDirectoryStrategy.java
@@ -45,7 +45,7 @@ import com.google.inject.Inject;
  * Key-value implementations of BlobStore, such as S3, do not have directories. In following the
  * rackspace cloud files project, we use an empty object '#{dirpath}' with content type set to
  * 'application/directory'.
- * 
+ *
  * <p/>
  * To interoperate with other S3 tools, we accept the following ways to tell if the directory
  * exists:
@@ -57,7 +57,7 @@ import com.google.inject.Inject;
  * <li>if both a file with the name of a directory and a marker for that directory exists, then the
  * *file masks the directory*, and the directory is never returned.</li>
  * </ul>
- * 
+ *
  * @see MarkerFileMkdirStrategy
  */
 @Singleton
@@ -103,7 +103,7 @@ public class MarkersDeleteDirectoryStrategy implements DeleteDirectoryStrategy {
       } catch (TimeoutException te) {
          throw propagate(te);
       }
-      if (exceptions.size() > 0)
+      if (!exceptions.isEmpty())
          throw new BlobRuntimeException(String.format("error %s: %s", message, exceptions));
       assert !blobstore.directoryExists(containerName, directory) : String.format(
                "still exists %s: %s", message, exceptions);

http://git-wip-us.apache.org/repos/asf/jclouds/blob/e711275f/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/PutBlobsStrategyImpl.java
----------------------------------------------------------------------
diff --git a/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/PutBlobsStrategyImpl.java b/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/PutBlobsStrategyImpl.java
index e72fff0..6cf457c 100644
--- a/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/PutBlobsStrategyImpl.java
+++ b/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/PutBlobsStrategyImpl.java
@@ -74,7 +74,7 @@ public class PutBlobsStrategyImpl implements PutBlobsStrategy {
       } catch (TimeoutException te) {
          throw propagate(te);
       }
-      if (exceptions.size() > 0)
+      if (!exceptions.isEmpty())
          throw new BlobRuntimeException(String.format("error putting into container %s: %s",
                   containerName, exceptions));
    }