<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">

<!--
  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.
-->
  <id>dir</id>
  <formats>
    <format>tar.gz</format>
    <format>zip</format>
    <format>dir</format>
  </formats>
  <includeBaseDirectory>true</includeBaseDirectory>
  <baseDirectory>cxf-dosgi-${project.version}</baseDirectory>
  <dependencySets>
  	<dependencySet>
  		<includes>
	  		<include>org.apache.cxf.dosgi.samples:cxf-dosgi-samples-soap-api</include>
	  		<include>org.apache.cxf.dosgi.samples:cxf-dosgi-samples-soap-impl</include>
	  		<include>org.apache.cxf.dosgi.samples:cxf-dosgi-samples-soap-client</include>
	  		<include>org.apache.cxf.dosgi.samples:cxf-dosgi-samples-rest-api</include>
	  		<include>org.apache.cxf.dosgi.samples:cxf-dosgi-samples-rest-impl</include>
	  		<include>org.apache.cxf.dosgi.samples:cxf-dosgi-samples-rest-client</include>
  		</includes>
  		<outputDirectory>
  			samples
  		</outputDirectory>
  	</dependencySet>
  </dependencySets>
  <fileSets>
  	  <fileSet>
      	<directory>../..</directory>
      	<includes>
      		<include>release_notes.md</include>
      	</includes>
      	<outputDirectory>.</outputDirectory>
      </fileSet>
      <fileSet>
      	<directory>target/bin</directory>
      	<outputDirectory>bin</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>target/distro-unzip/jar</directory>
      <excludes>
      	<exclude>org.apache.felix.framework*</exclude>
      	<exclude>biz.aQute.launcher*</exclude>
      </excludes>
      <outputDirectory>bundle</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>target/maven-shared-archive-resources/META-INF</directory>
      <excludes>
          <exclude>DEPENDENCIES</exclude>
      </excludes>
    </fileSet>
    <fileSet>
      <directory>src/main/release</directory>
      <outputDirectory>.</outputDirectory>
    </fileSet>
  </fileSets>
</assembly>
