<?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.

-->
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
  <id>bundles</id>
  <formats>
    <format>dir</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <dependencySets>
    <dependencySet>
      <outputDirectory/>
      <outputFileNameMapping>${artifact.artifactId}.jar</outputFileNameMapping>
      <includes>
        <include>org.apache.camel:camel-api</include>
        <include>org.apache.camel:camel-base</include>
        <include>org.apache.camel:camel-core-engine</include>
        <include>org.apache.camel:camel-core-languages</include>
        <include>org.apache.camel:camel-management-api</include>
        <include>org.apache.camel.karaf:camel-core-osgi</include>
        <include>org.apache.camel.karaf:camel-osgi-activator</include>
        <include>org.apache.camel:camel-support</include>
        <include>org.apache.camel:camel-util</include>
        <include>org.apache.camel:camel-timer</include>
        <include>org.apache.camel:camel-log</include>
      </includes>
      <scope>test</scope>
    </dependencySet>
  </dependencySets>
</assembly>
