/********************************************************************************
 * 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
 *
 ********************************************************************************/

plugins {
  id "com.google.protobuf" version "0.8.8"
}

description = 'business object service'

apply plugin: 'antlr'

dependencies {
	compile project(':nucleus:connector')
	compile project(':nucleus:preferences')
	compile 'com.fasterxml.jackson.core:jackson-databind:2.5.1'
	compile 'io.vavr:vavr:0.9.1'
	compile 'org.glassfish.jersey.media:jersey-media-multipart:2.23.2'
	
	compile 'com.google.protobuf:protobuf-java:3.2.0'
	compile 'com.google.protobuf:protobuf-java-util:3.2.0'

	testCompile 'org.assertj:assertj-core:3.6.2'
	testCompile 'io.rest-assured:rest-assured:3.0.5'
	testCompile 'org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:2.23.2'
	testCompile 'org.glassfish.jersey.media:jersey-media-json-jackson:2.23.2'

	testImplementation project(":api:odsadapter")
	testImplementation project(":api:atfxadapter")
	testImplementation "com.google.code.gson:gson:2.7"

	antlr "org.antlr:antlr4:4.5.3"
}

generateGrammarSource { arguments += ["-visitor"] }

test {
	exclude 'org/eclipse/mdm/businessobjects/boundary/integrationtest/*'
}

compileJava.dependsOn(generateGrammarSource)

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

protobuf {
	protoc {
		artifact = 'com.google.protobuf:protoc:3.0.0'
	}
}

sourceSets {
	main {
		java {
			srcDirs 'build/generated/source/proto/main/java'
		}
	}
}

