You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by an...@apache.org on 2013/11/18 16:32:08 UTC
git commit: applies tidies for imageChooser (JCLOUDS-331) as
suggested in pull #202
Updated Branches:
refs/heads/master 029e71843 -> 9a7336bb0
applies tidies for imageChooser (JCLOUDS-331) as suggested in pull #202
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/9a7336bb
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/9a7336bb
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/9a7336bb
Branch: refs/heads/master
Commit: 9a7336bb0e0aed1e62de2725ffe97703dc3b2791
Parents: 029e718
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Fri Nov 15 09:19:21 2013 +0000
Committer: Andrew Phillips <an...@apache.org>
Committed: Mon Nov 18 10:31:34 2013 -0500
----------------------------------------------------------------------
.../internal/EC2TemplateBuilderImplTest.java | 1 -
.../jclouds/compute/domain/TemplateBuilder.java | 2 +-
.../domain/internal/TemplateBuilderImpl.java | 2 +-
.../internal/TemplateBuilderImplTest.java | 140 +++++++++++--------
4 files changed, 81 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9a7336bb/apis/ec2/src/test/java/org/jclouds/ec2/compute/internal/EC2TemplateBuilderImplTest.java
----------------------------------------------------------------------
diff --git a/apis/ec2/src/test/java/org/jclouds/ec2/compute/internal/EC2TemplateBuilderImplTest.java b/apis/ec2/src/test/java/org/jclouds/ec2/compute/internal/EC2TemplateBuilderImplTest.java
index 7e9cb8f..0b12bb0 100644
--- a/apis/ec2/src/test/java/org/jclouds/ec2/compute/internal/EC2TemplateBuilderImplTest.java
+++ b/apis/ec2/src/test/java/org/jclouds/ec2/compute/internal/EC2TemplateBuilderImplTest.java
@@ -96,7 +96,6 @@ public class EC2TemplateBuilderImplTest extends TemplateBuilderImplTest {
return "us-east-1/"+uniqueLabel;
}
-
@Override
@Test
public void testHardwareWithImageIdPredicateOnlyAcceptsImageWhenLocationNull() {
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9a7336bb/compute/src/main/java/org/jclouds/compute/domain/TemplateBuilder.java
----------------------------------------------------------------------
diff --git a/compute/src/main/java/org/jclouds/compute/domain/TemplateBuilder.java b/compute/src/main/java/org/jclouds/compute/domain/TemplateBuilder.java
index c4fdb46..155dbdc 100644
--- a/compute/src/main/java/org/jclouds/compute/domain/TemplateBuilder.java
+++ b/compute/src/main/java/org/jclouds/compute/domain/TemplateBuilder.java
@@ -177,7 +177,7 @@ public interface TemplateBuilder {
* If no function is supplied, jclouds will select one according to an internal strategy.
* This strategy may change from version to version.
*/
- TemplateBuilder imageChooser(Function<Iterable<? extends Image>,Image> imageChooser);
+ TemplateBuilder imageChooser(Function<Iterable<? extends Image>, Image> imageChooser);
/**
* Configure this template to require the minimum cores below
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9a7336bb/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 8b60aec..426511f 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
@@ -975,7 +975,7 @@ public class TemplateBuilderImpl implements TemplateBuilder {
* {@inheritDoc}
*/
@Override
- public TemplateBuilderImpl imageChooser(Function<Iterable<? extends Image>,Image> imageChooser) {
+ public TemplateBuilderImpl imageChooser(Function<Iterable<? extends Image>, Image> imageChooser) {
this.imageChooser = imageChooser;
return this;
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/9a7336bb/compute/src/test/java/org/jclouds/compute/domain/internal/TemplateBuilderImplTest.java
----------------------------------------------------------------------
diff --git a/compute/src/test/java/org/jclouds/compute/domain/internal/TemplateBuilderImplTest.java b/compute/src/test/java/org/jclouds/compute/domain/internal/TemplateBuilderImplTest.java
index 4661c4b..8419a85 100644
--- a/compute/src/test/java/org/jclouds/compute/domain/internal/TemplateBuilderImplTest.java
+++ b/compute/src/test/java/org/jclouds/compute/domain/internal/TemplateBuilderImplTest.java
@@ -146,9 +146,16 @@ public class TemplateBuilderImplTest {
verify(defaultTemplate, optionsProvider, templateBuilderProvider);
}
+ /**
+ * Resolves images using a default TemplateBuilder, optionally applying a customizer to that
+ * TemplateBuilder where the customizer may e.g. apply an imageChooser
+ */
@SuppressWarnings("unchecked")
- protected void doTestResolveImages(Supplier<Set<? extends Image>> images, Image expectedBest,
- Function<TemplateBuilderImpl, TemplateBuilderImpl> builderCustomisation) {
+ protected void doTestResolveImagesWithTemplateBuilderCustomizer(
+ Supplier<Set<? extends Image>> inputImages,
+ Function<TemplateBuilderImpl, TemplateBuilderImpl> templateBuilderPerTestCustomizer,
+ Image expectedBest) {
+
Hardware hardware = new HardwareBuilder().id("hardwareId").build();
Supplier<Set<? extends Location>> locations = Suppliers.<Set<? extends Location>> ofInstance(ImmutableSet
@@ -161,30 +168,40 @@ public class TemplateBuilderImplTest {
replay(defaultTemplate, optionsProvider, templateBuilderProvider);
- TemplateBuilderImpl template = createTemplateBuilder(null, locations, images, hardwares, region,
+ TemplateBuilderImpl template = createTemplateBuilder(null, locations, inputImages, hardwares, region,
optionsProvider, templateBuilderProvider);
- template = builderCustomisation.apply(template);
+ template = templateBuilderPerTestCustomizer.apply(template);
- assertEquals(template.resolveImage(hardware, images.get()), expectedBest);
+ assertEquals(template.resolveImage(hardware, inputImages.get()), expectedBest);
verify(defaultTemplate, optionsProvider, templateBuilderProvider);
}
+ protected void doTestResolveImages(Supplier<Set<? extends Image>> inputImages, Image expectedBest) {
+ doTestResolveImagesWithTemplateBuilderCustomizer(
+ inputImages,
+ Functions.<TemplateBuilderImpl>identity(),
+ expectedBest);
+ }
+
public void testResolveImagesSimple() {
- doTestResolveImages(Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of(
- image, image64bit)),
- image64bit, Functions.<TemplateBuilderImpl>identity());
+ doTestResolveImages(
+ Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of(image, image64bit)),
+ image64bit);
}
public void testResolveImagesPrefersNull() {
// preferring null has been the default behaviour; not sure if this is ideal
// (would make more sense to prefer nonNull) but don't change behaviour by default
- doTestResolveImages(Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of(
- image, imageArchNull, image64bit)),
- imageArchNull, Functions.<TemplateBuilderImpl>identity());
+ doTestResolveImages(
+ Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of(image, imageArchNull, image64bit)),
+ imageArchNull);
}
public void testResolveImagesCustomSorterPreferringNonNull() {
+ // preferring null has been the default behaviour;
+ // see comments in TemplateBuilderImpl.DEFAULT_IMAGE_ORDERING
+
final Ordering<Image> sorterPreferringNonNullArch = new Ordering<Image>() {
@Override
public int compare(Image left, Image right) {
@@ -198,67 +215,68 @@ public class TemplateBuilderImplTest {
assertTrue(TemplateBuilderImpl.DEFAULT_IMAGE_ORDERING.compare(image64bit, imageArchNull) < 0, "wrong default image ordering");
assertTrue(sorterPreferringNonNullArch.compare(image64bit, imageArchNull) > 0, "wrong custom image ordering");
- // preferring null has been the default behaviour;
- // see comments in TemplateBuilderImpl.DEFAULT_IMAGE_ORDERING
- doTestResolveImages(Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of(
- image, imageArchNull, image64bit)),
- image64bit, new Function<TemplateBuilderImpl,TemplateBuilderImpl>() {
- @Override
- public TemplateBuilderImpl apply(TemplateBuilderImpl input) {
- return input.imageChooser(input.imageChooserFromOrdering(sorterPreferringNonNullArch));
- }
- });
+ Function<TemplateBuilderImpl, TemplateBuilderImpl> tbCustomiser = new Function<TemplateBuilderImpl, TemplateBuilderImpl>() {
+ @Override
+ public TemplateBuilderImpl apply(TemplateBuilderImpl input) {
+ return input.imageChooser(input.imageChooserFromOrdering(sorterPreferringNonNullArch));
+ }
+ };
+
+ doTestResolveImagesWithTemplateBuilderCustomizer(
+ Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of(image, imageArchNull, image64bit)),
+ tbCustomiser, image64bit);
}
public void testResolveImagesPrefersImageBecauseNameIsLastAlphabetically() {
// preferring that which comes later alphabetically is the default behaviour;
// see comments in TemplateBuilderImpl.DEFAULT_IMAGE_ORDERING
- doTestResolveImages(Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of(
- imageNameAlt, image)),
- image, Functions.<TemplateBuilderImpl>identity());
+ doTestResolveImages(
+ Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of(imageNameAlt, image)),
+ image);
}
public void testResolveImagesCustomSorterPreferringAltImage() {
- doTestResolveImages(Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of(
- imageNameAlt, image, imageArchNull, image64bit)),
- imageNameAlt, new Function<TemplateBuilderImpl,TemplateBuilderImpl>() {
- @Override
- public TemplateBuilderImpl apply(TemplateBuilderImpl input) {
- return input.imageChooser(input.imageChooserFromOrdering(new Ordering<Image>() {
- private int score(Image img) {
- if (img.getName().contains("alternate")) return 10;
- return 0;
- }
- @Override
- public int compare(Image left, Image right) {
- return score(left) - score(right);
- }
- }));
- }
- });
+ Function<TemplateBuilderImpl, TemplateBuilderImpl> tbSortWithAlternate = new Function<TemplateBuilderImpl, TemplateBuilderImpl>() {
+ @Override
+ public TemplateBuilderImpl apply(TemplateBuilderImpl input) {
+ return input.imageChooser(input.imageChooserFromOrdering(new Ordering<Image>() {
+ private int score(Image img) {
+ if (img.getName().contains("alternate")) return 10;
+ return 0;
+ }
+ @Override
+ public int compare(Image left, Image right) {
+ return score(left) - score(right);
+ }
+ }));
+ }
+ };
+ doTestResolveImagesWithTemplateBuilderCustomizer(
+ Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of(imageNameAlt, image, imageArchNull, image64bit)),
+ tbSortWithAlternate, imageNameAlt);
}
public void testResolveImagesCustomChooserPreferringAltImage() {
- doTestResolveImages(Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of(
- imageNameAlt, image, imageArchNull, image64bit)),
- imageNameAlt, new Function<TemplateBuilderImpl,TemplateBuilderImpl>() {
- @Override
- public TemplateBuilderImpl apply(TemplateBuilderImpl input) {
- return input.imageChooser(new Function<Iterable<? extends Image>, Image>() {
- @Override
- public Image apply(Iterable<? extends Image> input) {
- return Iterables.find(input, new Predicate<Image>() {
- @Override
- public boolean apply(Image input) {
- return input.getName()!=null && input.getName().contains("alternate");
- }
- });
- }
- });
- }
- });
- }
-
+ Function<TemplateBuilderImpl, TemplateBuilderImpl> tbChooseAlternate = new Function<TemplateBuilderImpl, TemplateBuilderImpl>() {
+ @Override
+ public TemplateBuilderImpl apply(TemplateBuilderImpl input) {
+ return input.imageChooser(new Function<Iterable<? extends Image>, Image>() {
+ @Override
+ public Image apply(Iterable<? extends Image> input) {
+ return Iterables.find(input, new Predicate<Image>() {
+ @Override
+ public boolean apply(Image input) {
+ return input.getName() != null && input.getName().contains("alternate");
+ }
+ });
+ }
+ });
+ }
+ };
+ doTestResolveImagesWithTemplateBuilderCustomizer(
+ Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of(imageNameAlt, image, imageArchNull, image64bit)),
+ tbChooseAlternate, imageNameAlt);
+ }
@SuppressWarnings("unchecked")
@Test