<?xml version="1.0"?>
<!--
  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>
  <id></id>
  <formats>
    <format>dir</format>
    <format>tar.gz</format>
  </formats>
  <includeBaseDirectory>true</includeBaseDirectory>
  <!-- File sets. Syntax:
	  <fileSets>
	    <fileSet>
	      <useDefaultExcludes/>
	      <outputDirectory/>
	      <includes/>
	      <excludes/>
	      <fileMode/>
	      <directoryMode/>
	      <directory/>
	      <lineEnding/>
	      <filtered/>
	    </fileSet>
	  </fileSets>
  -->
  <fileSets>
    <fileSet>
      <!--TODO-->
      <directory>src/main/resources/hooks</directory>
      <outputDirectory>hooks</outputDirectory>
    </fileSet>
     <fileSet>
      <directory>src/main/resources/common-services</directory>
      <outputDirectory>common-services</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>src/main/resources/stacks</directory>
      <outputDirectory>stacks</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>${project.build.directory}/nifi-toolkit</directory>
      <outputDirectory>common-services/NIFI/1.0.0/package/files</outputDirectory>
    </fileSet>
  </fileSets>
  <!-- Single files. Syntax:
	  <files>
	    <file>
	      <source/>
	      <outputDirectory/>
	      <destName/>
	      <fileMode/>
	      <lineEnding/>
	      <filtered/>
	    </file>
	  </files>
  -->
  <files>
    <file>
      <source>target/mpack.json</source>
    </file>
  </files>    
  <dependencySets>
  </dependencySets>
</assembly>

