I'm following the [Spring Integration quick start tutorial](https://spring.io/guides/gs/integration/#scratch) and everything is working fine as outlined. I see that in the transformer a `@newline` `Bean` is referenced...

```
<int:transformer
    input-channel="tweets"
    expression="payload.fromUser + ' : ' + payload.text + @newline"
    output-channel="files"/>

```

.

```
@Bean
public String newline(){
    return System.getProperty("line.separator");
}

```

In the twitter `search-inbound-channel-adapter` the query attribute is set to `#HelloWorld`. I want it to be set dynamically based on the return value of a `Bean`. Following similar convention as was done in the transformer, I tried to set the twitter adapter to the following:

```
<twitter:search-inbound-channel-adapter 
    id="tweets"
    query="@query"
    twitter-template="twitterTemplate">
    <int:poller fixed-rate="5000"></int:poller>
</twitter:search-inbound-channel-adapter>

```

and then create a `Bean` to grab the query value as defined in an environment variable passed in when the application is executed...

```
@Bean
public String query(Environment env){
    return env.getProperty("query");
}

```

Everything gets set properly but the twitter search expression is literally `@query` instead of the return value from the `Bean` annotated method.

Two questions...
1. Why is `@newline` parsed as a `Bean` reference but `@query` is not?
2. What do I need to do in order to achieve this behavior?

Thank you