<?xml version='1.0' encoding='utf-8'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
    http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<sigil:bundle xmlns:sigil="http://sigil.codecauldron.org/xml/sigil-namespace">
<classpathEntry>&lt;classpathentry kind="lib" path="lib/dependee.jar"/&gt;</classpathEntry>
<classpathEntry>&lt;classpathentry kind="src" path="src"/&gt;</classpathEntry>
<bundle>
<bundle-version>0.0.0</bundle-version>
<bundle-vendor>Paremus Limited</bundle-vendor>
<bundle-symbolicName>org.example.helloworld</bundle-symbolicName>
<fragment-host bundle="com.springsource.org.apache.commons.lang" version="[2.0.0,2.4.0)"/>
<export-package package="org.example.helloworld.api" version="0.0.0"/><import-package package="org.cauldron.newton.command" version="1.2.0"/><import-package package="org.apache.log4j" version="[1.2.14,1.3)"/><import-package package="org.example.helloworld.api" version="0"/><import-package package="org.cauldron.newton.command.console" version="1.2.0"/></bundle>
<sigil:composite xmlns:sigil="http://sigil.codecauldron.org/xml/sigil-namespace">
<location>sca/org.example.helloworld.service.composite</location>
</sigil:composite>
<sigil:composite xmlns:sigil="http://sigil.codecauldron.org/xml/sigil-namespace">
<location>sca/org.example.helloworld.cli.composite</location>
</sigil:composite>
</sigil:bundle>
