<!--
  ~ 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>http-tools</artifactId>
	<packaging>bundle</packaging>

	<name>sensiNact IoT Gateway - HTTP Forwarding and Callback Factories</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.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>org.eclipse.sensinact.gateway.sthbnd.http</groupId>
			<artifactId>http-device</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.eclipse.sensinact.gateway.tools</groupId>
	    	<artifactId>sensinact-test</artifactId>
	        <version>${project.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.maven.plugins</groupId>
			    <artifactId>maven-antrun-plugin</artifactId>
			    <version>1.8</version>
			    <executions>
			        <execution>
			            <id>createClassesDir</id>
			            <phase>test-compile</phase>
			            <configuration>
			                <target>
			                    <mkdir dir="${project.build.directory}/felix/tmp" />
			                    <mkdir dir="${project.build.directory}/extra-test-classes" />
			                    <mkdir dir="${project.build.directory}/extra-test-classes2" />
		                	    <javac fork="true" executable="${env.JAVA_HOME}/bin/javac"
		                	     srcdir="${project.basedir}/extra-src/test/java" 
		                	     destdir="${project.basedir}/target/extra-test-classes">
   									<classpath refid="maven.test.classpath"/>
   								</javac>
		                	    <javac fork="true" executable="${env.JAVA_HOME}/bin/javac"
		                	     srcdir="${project.basedir}/extra-src2/test/java" 
		                	     destdir="${project.basedir}/target/extra-test-classes2">
   									<classpath refid="maven.test.classpath"/>
   								</javac>
			                </target>
			            </configuration>
			            <goals>
			                <goal>run</goal>
			            </goals>
			        </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>osgi.cmpn</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.nthbnd</groupId>
									<artifactId>rest-access</artifactId>
									<version>${project.version}</version>
									<outputDirectory>${project.build.directory}/felix/bundle</outputDirectory>
									<destFileName>rest-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>
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
				<extensions>true</extensions>
				<configuration>
					<instructions>
						<Bundle-Activator>
							org.eclipse.sensinact.gateway.nthbnd.http.tools.osgi.Activator
						</Bundle-Activator>
						<Export-Package>
							<!--   org.eclipse.sensinact.gateway.nthbnd.http.tools,-->
							org.eclipse.sensinact.gateway.nthbnd.http.tools.osgi,
							org.eclipse.sensinact.gateway.nthbnd.http.forward,
							org.eclipse.sensinact.gateway.nthbnd.http.callback
						</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>
		</plugins>
	</build>

</project>
