Title: Repository Generator Tool
Notice:    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.

## Repository Generation Tool##


It is a command line tool to generate a repository xml for a list of bundles. The instruction is as follows.


 1. Obtain the tool <Br/>
a) Build the tool from Aries trunk. <br/>
 The easiest way to obtain the tool is to download the aries trunk, navigate
to the  '*application->application-tooling-repository-generator*', and then run *mvn install*, copy all jars from the the target directory. <br/><br/>

 2. Execute the command line tool<br/>
>*java -jar org.apache.aries.application.tooling.repository.generator-xxx.jar [repository xml location] url1 [url2...]*
   
Note: The text under the [] is optional. If [repository xml loaction] is absent, the repository.xml file will be generated under the current directory. 

The xxx is the maven version of bundle org.apache.aries.application.tooling.repository.generator, e.g. 0.1.0-SNAPSHOT. <br/>
The file: protocol - url can be a file or a directory, all valid bundles under that directory or subdirectory will be included in the repository xml (no need to list every single jar).<br/><br/>
Following is an example of generating a repository xml for all the bundles under the directory of  c:\temp\test\jars recursively and a bundle located under http://aaa.com/public/Aries/obr/test.b1/test.b1_1.0.0.jar. 
The repository xml is saved under c:\temp\test with the file name of repo.xml.
>*java -jar org.apache.aries.application.tooling.repository.generator-0.1.0-SNAPSHOT.jar c:\temp\test\repo.xml file:///C:/temp/test/jars http://aaa.com/public/Aries/obr/test.b1/test.b1_1.0.0.jar* 