# Licensed to the Apache Software Foundation (ASF) under the terms of ASLv2 (http://www.apache.org/licenses/LICENSE-2.0).

-nobundles: true
Bundle-Name: Apache ACE Run Client
Bundle-Description: Bnd run project for a standard ACE Client. This projects does not generate any artifacts.
