Apache Ignite
Copyright 2018 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).


This software includes code from IntelliJ IDEA Community Edition
Copyright (C) JetBrains s.r.o.
https://www.jetbrains.com/idea/
Licensed under Apache License, Version 2.0.
http://search.maven.org/#artifactdetails%7Corg.jetbrains%7Cannotations%7C13.0%7Cjar
