<?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.1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1 http://maven.apache.org/xsd/assembly-1.1.1.xsd">
    <!-- To build this, run "mvn package assembly:assembly" -->
    <id>mac</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    
    <fileSets>
         <!-- license, readme, etc. calculated at build time -->
        <fileSet>
            <directory>${project.build.directory}/maven-shared-archive-resources/META-INF</directory>
            <outputDirectory>/</outputDirectory>
        </fileSet>
    </fileSets>
    <files>
        <file>
            <source>target/start/workbench.sh</source>
            <outputDirectory>/Contents/Resources</outputDirectory>
            <lineEnding>unix</lineEnding>
            <fileMode>0755</fileMode>
        </file>
        <file>
            <source>target/start/run.sh</source>
            <outputDirectory>/Contents/MacOS</outputDirectory>
            <lineEnding>unix</lineEnding>
            <fileMode>0755</fileMode>
        </file>
        <file>
            <source>target/start/info.plist</source>
            <outputDirectory>/Contents</outputDirectory>
            <lineEnding>unix</lineEnding>
        </file>
        <file>
            <source>src/main/resources/images/icon.icns</source>
            <outputDirectory>/Contents/Resources</outputDirectory>
        </file> 
    </files>
    <dependencySets>
        <dependencySet>
            <outputDirectory>/Contents/Resources/lib</outputDirectory>
            <useProjectArtifact></useProjectArtifact>
            <unpack>false</unpack>
            <scope>runtime</scope>
            <useTransitiveFiltering>true</useTransitiveFiltering>
            <excludes>
                <exclude>junit:junit</exclude>
            </excludes>
        </dependencySet>
        <dependencySet>
            <outputDirectory>/Contents/Resources/lib</outputDirectory>
            <useProjectArtifact></useProjectArtifact>
            <unpack>false</unpack>
            <scope>provided</scope>
            <useTransitiveFiltering>true</useTransitiveFiltering>
            <excludes>
                <exclude>com.sun.xml.ws:jaxws-rt</exclude>
                <exclude>org.apache.cxf:*</exclude>
                <exclude>org.apache.axis2:*</exclude>
                <exclude>wsdl4j:*</exclude>
            </excludes>
        </dependencySet>
    </dependencySets>
</assembly>
