<!--
  ============LICENSE_START=======================================================
  ECOMP CLAMP
  ================================================================================
  Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
  ================================================================================
  Licensed 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.
  ============LICENSE_END=========================================================
  -->
  
<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">
	<id>clamp-files</id>

	<formats>
		<format>tar.gz</format>
	</formats>
	<includeBaseDirectory>false</includeBaseDirectory>

	<fileSets>
		<!-- include config files -->
		<fileSet>
			<excludes>
				<exclude>node_modules</exclude>
			</excludes>
			<directory>${project.build.directory}/${ui.react.src}</directory>
			<outputDirectory></outputDirectory>
		</fileSet>
		<!-- include ssl certificates files obtain from aaf p12 -->
		<fileSet>
			<directory>${project.basedir}/src/main/resources/clds/aaf/ssl</directory>
			<outputDirectory>ssl</outputDirectory>
		</fileSet>
	</fileSets>

</assembly>
