<?xml version="1.0" encoding="UTF-8"?><repository name="app.manager.service">
<!--
    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.
-->
<resource id="appManagerService/1.0.0" presentationname="application.management.fake" symbolicname="application.management.fake" uri="bundle_location" version="1.0.0">
<capability name="bundle">
<p n="version" t="version" v="1.0.0"/>
<p n="symbolicname" v="application.management.fake"/>
<p n="Bundle-ManifestVersion" v="2"/>
<p n="mandatory" v=""/>
</capability>
<capability name="service">
<p n="service" v="service"/>
<p n="osgi.service.blueprint.compname" v="app-manager"/>
<p n="objectClass" t="set" v="org.apache.aries.application.management.AriesApplicationManager"/>
<p n="service.ranking" v="0"/>
<p n="mandatory" v=""/>
</capability>
</resource>
</repository>
