Apapche BatchEE
Copyright 2014-2017 The Apache Software Foundation

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

This product includes software developed by IBM under Apache License Version 2.0.
Copyright 2007-2013 International Business Machines Corp. All rights reserved.
