/********************************************************************************
 * Copyright (c) 2015-2018 Contributors to the Eclipse Foundation
 *
 * See the NOTICE file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 ********************************************************************************/

description = 'MDM API - ATFXAdapter'

configurations.all {
	/* openatfx has a dependency on ODS corba interface classses, but we 
	 * use the classes generated by org.eclipse.mdm.api.odsadapter and 
	 * thus exclude the dependency from openatfx
	 */ 
	exclude group: 'org.asam', module: 'ods'
}

dependencies {
	compile 'org.slf4j:slf4j-api:1.7.25'
	compile project(':org.eclipse.mdm.openatfx')

	// MDM5 API
	compile "org.eclipse.mdm:org.eclipse.mdm.api.odsadapter:${version}"

	testRuntime 'ch.qos.logback:logback-classic:1.2.3'
	testCompile 'junit:junit:4.12'
	testCompile 'org.assertj:assertj-core:3.6.2'
	testCompile 'org.mockito:mockito-core:2.13.0'
}

jar {
	metaInf { from 'NOTICE.txt' }
	metaInf { from 'LICENSE.txt' }
}
