<!--
  ~ Copyright (c) 2017 CEA.
  ~ All rights reserved. This program and the accompanying materials
  ~ are made available under the terms of the Eclipse Public License v1.0
  ~ which accompanies this distribution, and is available at
  ~ http://www.eclipse.org/legal/epl-v10.html
  ~
  ~ Contributors:
  ~    CEA - initial API and implementation
  -->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.eclipse.sensinact.gateway.nthbnd</groupId>
		<artifactId>parent</artifactId>
		<version>2.0-SNAPSHOT</version>
	</parent>

	<artifactId>rest-access</artifactId>
	<packaging>bundle</packaging>

	<name>sensiNact IoT Gateway - HTTP REST Access</name>

	<dependencies>
		<dependency>
			<groupId>org.eclipse.sensinact.gateway</groupId>
			<artifactId>sensinact-utils</artifactId>
			<version>${project.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.eclipse.sensinact.gateway</groupId>
			<artifactId>sensinact-common</artifactId>
			<version>${project.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.eclipse.sensinact.gateway</groupId>
			<artifactId>sensinact-core</artifactId>
			<version>${project.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
	    	<groupId>org.eclipse.sensinact.gateway.tools</groupId>
	    	<artifactId>sensinact-test</artifactId>
	        <version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.eclipse.sensinact.gateway.nthbnd</groupId>
			<artifactId>sensinact-northbound-access</artifactId>
			<version>${project.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.eclipse.sensinact.gateway.protocol</groupId>
			<artifactId>http</artifactId>
			<version>${project.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.felix</groupId>
			<artifactId>org.apache.felix.http.jetty</artifactId>
			<version>3.0.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.felix</groupId>
			<artifactId>org.apache.felix.main</artifactId>
			<version>${felix.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.skyscreamer</groupId>
			<artifactId>jsonassert</artifactId>
			<version>1.2.3</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.eclipse.sensinact.gateway.simulated.devices</groupId>
			<artifactId>slider</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.eclipse.sensinact.gateway.simulated.devices</groupId>
			<artifactId>light</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
	
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
				<extensions>true</extensions>
				<configuration>
					<instructions>
						<Bundle-Activator>org.eclipse.sensinact.gateway.nthbnd.rest.osgi.Activator</Bundle-Activator>
						<Export-Package>org.eclipse.sensinact.gateway.nthbnd.rest.osgi</Export-Package>
						<Include-Resource>
							about.html
						</Include-Resource>
					</instructions>
				</configuration>				
				<executions>
					<execution>
						<goals>
							<goal>manifest</goal>
						</goals>
						<phase>generate-test-resources</phase>
						<configuration>
							<manifestLocation>${project.basedir}/target/generated-test-sources/META-INF</manifestLocation>
							<instructions>
								<_noee>true</_noee>
								<_exportcontents>*</_exportcontents>
								<_nouses>true</_nouses>
							</instructions>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<classpathDependencyScopeExclude>provided</classpathDependencyScopeExclude>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>org.apache.maven.surefire</groupId>
						<artifactId>common-junit48</artifactId>
						<version>2.18.1</version>
					</dependency>
				</dependencies>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>2.8</version>
				<executions>
					<execution>
						<goals>
							<goal>copy</goal>
						</goals>
						<phase>generate-test-resources</phase>
						<configuration>
							<artifactItems>
								<artifactItem>
									<groupId>org.apache.felix</groupId>
									<artifactId>org.apache.felix.fileinstall</artifactId>
									<version>${felix.fileinstall.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>org.apache.felix.fileinstall.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.apache.felix</groupId>
									<artifactId>org.apache.felix.configadmin</artifactId>
									<version>${felix.configadmin.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>org.apache.felix.configadmin.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.osgi</groupId>
									<artifactId>org.osgi.compendium</artifactId>
									<version>${osgi.compendium.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>org.osgi.compendium.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.apache.felix</groupId>
									<artifactId>org.apache.felix.framework.security</artifactId>
									<version>2.4.0</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>org.apache.felix.framework.security.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.eclipse.sensinact.gateway</groupId>
									<artifactId>sensinact-utils</artifactId>
									<version>${project.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>sensinact-utils.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.eclipse.sensinact.gateway</groupId>
									<artifactId>sensinact-common</artifactId>
									<version>${project.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>sensinact-common.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.eclipse.sensinact.gateway</groupId>
									<artifactId>sensinact-datastore-api</artifactId>
									<version>${project.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>sensinact-datastore-api.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.eclipse.sensinact.gateway</groupId>
									<artifactId>sensinact-core</artifactId>
									<version>${project.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>sensinact-core.jar</destFileName>
								</artifactItem>
                                <artifactItem>
                                    <groupId>org.eclipse.sensinact.gateway</groupId>
                                    <artifactId>sensinact-signature-validator</artifactId>
                                    <version>${project.version}</version>
                                    <outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
                                    <destFileName>sensinact-signature-validator.jar</destFileName>
                                </artifactItem>
								<artifactItem>
									<groupId>org.eclipse.sensinact.gateway</groupId>
									<artifactId>sensinact-framework-extension</artifactId>
									<version>${project.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>sensinact-framework-extension.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.eclipse.sensinact.gateway</groupId>
									<artifactId>sensinact-security-none</artifactId>
									<version>${project.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>sensinact-security-none.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.eclipse.sensinact.gateway.tools</groupId>
									<artifactId>sensinact-test-configuration</artifactId>
									<version>${project.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>sensinact-test-configuration.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.eclipse.sensinact.gateway</groupId>
									<artifactId>sensinact-generic</artifactId>
									<version>${project.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>sensinact-generic.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.eclipse.sensinact.gateway.nthbnd</groupId>
									<artifactId>sensinact-northbound-access</artifactId>
									<version>${project.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>sensinact-northbound-access.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.eclipse.sensinact.gateway.protocol</groupId>
									<artifactId>http</artifactId>
									<version>${project.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>http.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>javax.servlet</groupId>
									<artifactId>javax.servlet-api</artifactId>
									<version>3.1.0</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>javax.servlet-api.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.apache.felix</groupId>
									<artifactId>org.apache.felix.http.api</artifactId>
									<version>2.3.2</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>org.apache.felix.http.api.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.apache.felix</groupId>
									<artifactId>org.apache.felix.http.jetty</artifactId>
									<version>3.0.0</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>org.apache.felix.http.jetty.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.eclipse.sensinact.gateway.simulated.devices</groupId>
									<artifactId>slider</artifactId>
									<version>${project.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>slider.jar</destFileName>
								</artifactItem>
								<artifactItem>
									<groupId>org.eclipse.sensinact.gateway.simulated.devices</groupId>
									<artifactId>light</artifactId>
									<version>${project.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>light.jar</destFileName>
								</artifactItem>
							</artifactItems>
						</configuration>
					</execution>
				</executions>
				<extensions>true</extensions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.8</version>
				<executions>
					<execution>
						<phase>generate-test-resources</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<tasks>
								<echo>Copying keystore.jks</echo>
								<copy file="../../sensinact-security/cert/keystore.jks"
									  tofile="${project.build.directory}/felix/bundle/keystore.jks"/>
							</tasks>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

</project>
