> Markdown version of [Finding The Current Root And Application](https://vaadin.com/docs/v7/framework/articles/FindingTheCurrentRootAndApplication). Section index: [llms.txt](https://vaadin.com/docs/v7/framework/llms.txt)

# <a id="finding-the-current-root-and-application"></a>Finding the current root and application

There are many cases where you need a reference to the active `Application` or `Root`, for instance for showing notifications in a click listener. It is possible to get a reference to the component from the event and then a reference from the component to the `Root` but Vaadin also offers an easier way through two static methods:

```java
Root.getCurrent()
Application.getCurrent()
```

For example when you want to show the name of the current Root class:

```java
Button helloButton = new Button("Say Hello");
helloButton.addListener(new ClickListener() {
  public void buttonClick(ClickEvent event) {
    Notification.show("This Root is " + Root.getCurrent().getClass().getSimpleName());
  }
});
```

Similarly for `Application`, for instance to find out if the application is running in production mode:

```java
public void buttonClick(ClickEvent event) {
  String msg = "Running in ";
  msg += Application.getCurrent().isProductionMode() ?
    "production" : "debug";
  msg += " mode";
  Notification.show(msg);
}
```

**Note** that these are based on `ThreadLocal` so they won’t work in a background thread (or otherwise outside the standard request scope).
