<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (c) 2013-2020 LAAS-CNRS (www.laas.fr)
    7 Colonel Roche 31077 Toulouse - France
   
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License 2.0
    which accompanies this distribution, and is available at
    https://www.eclipse.org/legal/epl-2.0/
   
    Initial Contributors:
        Thierry Monteil : Project manager, technical co-manager
        Mahdi Ben Alaya : Technical co-manager
        Samir Medjiah : Technical co-manager
        Khalil Drira : Strategy expert
        Guillaume Garzone : Developer
        François Aïssaoui : Developer
   
    New contributors :
        Sebastien BOLLE <sebastien.bolle@orange.com>
        Gregory BONNARDEL <gbonnardel.ext@orange.com>
        Cyrille BAREAU <cyrille.bareau@orange.com>
 -->
<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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<artifactId>org.eclipse.om2m</artifactId>
		<groupId>org.eclipse.om2m</groupId>
		<version>1.1.0-SNAPSHOT</version>
	</parent>
	<artifactId>org.eclipse.om2m.site.in-cse</artifactId>
	<packaging>eclipse-repository</packaging>
	<name>org.eclipse.om2m :: in product</name>
	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-p2-director-plugin</artifactId>
				<version>${tycho.version}</version>
				<executions>
					<execution>
						<id>materialize-products</id>
						<phase>package</phase>
						<goals>
							<goal>materialize-products</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.8</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<tasks>
								<echo>Copying scripts into in product</echo>
								<copy file="${basedir}/script"
									tofile="${basedir}/target/products/in-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/start.sh" />
								<copy file="${basedir}/script"
									tofile="${basedir}/target/products/in-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/start.bat" />
								<copy file="${basedir}/log4j.configuration"
									tofile="${basedir}/target/products/in-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/log4j.configuration" />
									
								<copy
									todir="${basedir}/target/products/in-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/configurations">
									<fileset dir="${basedir}/configurations" includes="**/*" />
								</copy>
								<copy file="${basedir}/libs/pax-confman-propsloader-0.2.3.jar"
									todir="${basedir}/target/products/in-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/plugins/" />
								
								<propertyfile
									file="${basedir}/target/products/in-cse/${osgi.os}/${osgi.ws}/${osgi.arch}/configuration/config.ini">
									<entry key="osgi.bundles" type="string" operation="+"
										value=", reference:file:pax-confman-propsloader-0.2.3.jar@1:start" />
								</propertyfile>
							</tasks>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>docker</id>
			<build>
				<plugins>
					<plugin>
						<groupId>com.spotify</groupId>
						<artifactId>docker-maven-plugin</artifactId>
						<version>1.0.0</version>
						<executions>
							<execution>
								<phase>package</phase>
								<goals>
									<goal>build</goal>
								</goals>
							</execution>
						</executions>
						<configuration>
							<imageName>org.eclipse.om2m.site.incse</imageName>
							<dockerDirectory>${basedir}</dockerDirectory>
							<resources>
								<resource>
									<targetPath>/</targetPath>
									<directory>${project.build.directory}</directory>
								</resource>
							</resources>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
