In Vaadin 10+, all components are basically add-ons. Previously we shipped the core component set in one module, but now all component implementations are different modules. Most often in your build file, you only use Vaadin BOM, which defines a set of modules that are tested to work together, and quite often vaadin-core, which aggregates the most commonly used UI components to your classpath at once.
html:<marked-element> <div slot="markdown-html"> </div> <script type="text/markdown"> The increased modularity opens up a possibility to use some features of the upcoming platform releases, with the LTS version. It doesn’t always work. There might be some backwards incompatible changes, and then you’ll need to use non-LTS platform release or even pre-release of such, but sometimes the new artifact works perfectly with your current platform version. And this is currently the case for the long-awaited TreeGrid feature that we already released as vaadin-grid-flow:1.1.1, but it missed [the release train deadline](/blog/the-revaadin-platform) to get included into Vaadin 11. The vaadin-grid-flow:1.1.1 is also perfectly compatible with the current LTS version, Vaadin 10. Let's see how to get this one feature into your application, which is otherwise still using the LTS version. ## Find the right module to upgrade There are many ways to find the dependency to upgrade. You can use command line and mvn dependency:tree to see all (including transitive) dependencies, or you can use your IDE that has features to show the modules brought to your classpath. The next step then is to declare this special dependency directly in your build script so that you can override its version, managed by your vaadin-bom. In this example, I used NetBeans and using context menu over the dependency, you can do this automatically.  ## Figure out the release you need The next step is to figure out which version of the explicitly declared dependency contains the feature you need. You can just try to pick the latest, maybe suggested by your IDE as in the screenshot below, browse [repo1.maven.org](https://repo1.maven.org/maven2/com/vaadin/vaadin-grid-flow/) or use some [handy service](https://mvnrepository.com/artifact/com.vaadin/vaadin-grid-flow).  Alternatively, or should I say preferably, you can check the releases also from the component's GitHub repository. This approach has the advantage that you'll see the release notes and they often give you hints whether it works with the platform version you are currently using. In the [TreeGrid example](https://github.com/vaadin/vaadin-grid-flow/releases) you can see that the latest 1.2.0 is actually tested against vaadin-flow:1.0.5, which comes with the most recent LTS version. Just specify the version explicitly and ignore possible bom warnings and enjoy the new features. If you just want to get the latest Vaadin Grid today, go ahead and copy paste the following snippet to your pom.xml: ```xml <dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-grid-flow</artifactId> <version>1.2.0</version> </dependency> ``` ## TreeGrid code example Using the new TreeGrid in Vaadin 10+ is pretty much the same as with Vaadin 8 series. You can either use the low-level DataProvider APIs or use the handy TreeData approach. Often you can see the code examples of the new features from [the test sources](https://github.com/vaadin/vaadin-grid-flow/tree/master/src/test/java/com/vaadin/flow/component/treegrid/it) of the component project, even if the code examples won’t yet be visible on the website. Here is the code snippet I used for the TreeGrid example: ```java public static class Person { private String name; private Person parent; public String getName() { return name; } public Person getParent() { return parent; } public void setName(String name) { this.name = name; } public void setParent(Person parent) { this.parent = parent; } public Person(String name, Person parent) { this.name = name; this.parent = parent; } @Override public String toString() { return name; } } public MainView() { TreeGrid<Person> grid = new TreeGrid<>(Person.class); grid.setHierarchyColumn("name"); Person dad = new Person("dad", null); Person son = new Person("son", dad); Person daughter = new Person("daughter", dad); List<Person> all = Arrays.asList(dad, son, daughter); all.forEach(p -> grid.getTreeData().addItem(p.getParent(), p)); add(grid); } ```  You can also check out the full example project from [my github repository](https://github.com/mstahv/vaadinTreeGridWithVaadin10). </script> </marked-element>