diff --git a/function/spring-twitter-function/src/main/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionConfiguration.java b/function/spring-twitter-function/src/main/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionConfiguration.java index 0664b6e6..78d92eb9 100644 --- a/function/spring-twitter-function/src/main/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionConfiguration.java +++ b/function/spring-twitter-function/src/main/java/org/springframework/cloud/fn/twitter/geo/TwitterGeoFunctionConfiguration.java @@ -39,6 +39,7 @@ import org.springframework.messaging.Message; * Auto-configuration for Twitter Geo function. * * @author Christian Tzolov + * @author Artem Bilan */ @ConditionalOnExpression("environment['twitter.geo.search.ip'] != null || (environment['twitter.geo.location.lat'] != null && environment['twitter.geo.location.lon'] != null)") @AutoConfiguration(after = TwitterConnectionConfiguration.class) @@ -75,7 +76,7 @@ public class TwitterGeoFunctionConfiguration { }; } - @Bean + @Bean("twitterPlacesFunction") @ConditionalOnProperty(name = "twitter.geo.search.type", havingValue = "search", matchIfMissing = true) public Function> twitterSearchPlacesFunction(Twitter twitter) { return (geoQuery) -> { @@ -89,7 +90,7 @@ public class TwitterGeoFunctionConfiguration { }; } - @Bean + @Bean("twitterPlacesFunction") @ConditionalOnProperty(name = "twitter.geo.search.type", havingValue = "reverse") public Function> twitterReverseGeocodeFunction(Twitter twitter) { return (geoQuery) -> { @@ -104,10 +105,12 @@ public class TwitterGeoFunctionConfiguration { } @Bean - public Function, Message> twitterGeoFunction(Function, GeoQuery> toGeoQuery, - Function> places, Function> managedJson) { + public Function, Message> twitterGeoFunction( + Function, GeoQuery> messageToGeoQueryFunction, + Function> twitterPlacesFunction, + Function> managedJson) { - return toGeoQuery.andThen(places).andThen(managedJson); + return messageToGeoQueryFunction.andThen(twitterPlacesFunction).andThen(managedJson); } } diff --git a/function/spring-twitter-function/src/main/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionConfiguration.java b/function/spring-twitter-function/src/main/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionConfiguration.java index 00e5160e..5d1adc89 100644 --- a/function/spring-twitter-function/src/main/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionConfiguration.java +++ b/function/spring-twitter-function/src/main/java/org/springframework/cloud/fn/twitter/trend/TwitterTrendFunctionConfiguration.java @@ -32,6 +32,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.fn.common.twitter.TwitterConnectionConfiguration; import org.springframework.context.annotation.Bean; +import org.springframework.expression.Expression; import org.springframework.messaging.Message; /** @@ -76,9 +77,12 @@ public class TwitterTrendFunctionConfiguration { return (message) -> { try { - if (properties.getClosest().getLat() != null && properties.getClosest().getLon() != null) { - double lat = properties.getClosest().getLat().getValue(message, double.class); - double lon = properties.getClosest().getLon().getValue(message, double.class); + TwitterTrendFunctionProperties.Closest closest = properties.getClosest(); + Expression latExpression = closest.getLat(); + Expression lonExpression = closest.getLon(); + if (latExpression != null && lonExpression != null) { + double lat = latExpression.getValue(message, double.class); + double lon = lonExpression.getValue(message, double.class); return twitter.getClosestTrends(new GeoLocation(lat, lon)); } else { diff --git a/function/spring-twitter-function/src/main/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionConfiguration.java b/function/spring-twitter-function/src/main/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionConfiguration.java index 634a683f..c93e9816 100644 --- a/function/spring-twitter-function/src/main/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionConfiguration.java +++ b/function/spring-twitter-function/src/main/java/org/springframework/cloud/fn/twitter/users/TwitterUsersFunctionConfiguration.java @@ -44,7 +44,7 @@ public class TwitterUsersFunctionConfiguration { private static final Log LOGGER = LogFactory.getLog(TwitterUsersFunctionConfiguration.class); - @Bean + @Bean("queryUsers") @ConditionalOnProperty(name = "twitter.users.type", havingValue = "search") public Function, List> userSearch(Twitter twitter, TwitterUsersFunctionProperties properties) { @@ -60,7 +60,7 @@ public class TwitterUsersFunctionConfiguration { }; } - @Bean + @Bean("queryUsers") @ConditionalOnProperty(name = "twitter.users.type", havingValue = "lookup") public Function, List> userLookup(Twitter twitter, TwitterUsersFunctionProperties properties) {