Apache Groovy
Copyright 2003-2016 The Apache Software Foundation

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

This product includes/uses ANTLR (http://www.antlr2.org/)
developed by Terence Parr 1989-2006

This product embeds the OpenBeans jar within its grooid jar artifacts
OpenBeans includes/uses files from Apache Harmony and the following notice applies
Copyright 2006, 2010 The Apache Software Foundation.
Portions of Apache Harmony were originally developed by Intel Corporation and are
licensed to the Apache Software Foundation under the "Software Grant and Corporate
Contribution License Agreement" and for which the following copyright notices apply
    (C) Copyright 2005 Intel Corporation
    (C) Copyright 2005-2006 Intel Corporation
    (C) Copyright 2006 Intel Corporation