<?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.
-->
<metatype:MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.0.0">
  
  <OCD description="FileInstaller" 
       name="org.apache.felix.fileinstall"
       id="org.apache.felix.fileinstall">
       
    <AD name="Poll directory"  id="felix.fileinstall.dir" required="true" type="String" default="load"/>   
    <AD name="Poll interval"  id="felix.fileinstall.poll" required="false" type="String" default="2000"/>
    <AD name="Log level"  id="felix.fileinstall.log.level" required="false" type="String" default="0"/>
    <AD name="Start new bundles?"  id="felix.fileinstall.bundles.new.start" required="false" type="String" default="true"/>
    <AD name="File name filter"  id="felix.fileinstall.filter" required="false" type="String" default=""/>
    <AD name="Temp directory"  id="felix.fileinstall.tmpdir" required="false" type="String" default="tmp"/>
    <AD name="No initial delay"  id="felix.fileinstall.noInitialDelay" required="false" type="String" default="false"/>
    <AD name="Start bundles transiently"  id="felix.fileinstall.bundles.startTransient" required="false" type="String" default="false"/>
    <AD name="Bundles start level"  id="felix.fileinstall.start.level" required="false" type="String" default="0"/>
  </OCD>
  
    <Designate pid="org.apache.felix.fileinstall">
        <Object ocdref="org.apache.felix.fileinstall"/>
    </Designate>
  
</metatype:MetaData>
