<?xml version="1.0" encoding="utf-8"?>

<!--
  ~ Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
  ~
  ~ WSO2 Inc. licenses this file to you under the Apache License,
  ~ Version 2.0 (the "License"); you may not use this file except
  ~ in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->

<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">

	<parent>
		<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
		<artifactId>raspberrypi-plugin-feature</artifactId>
		<version>2.2.3</version>
		<relativePath>../pom.xml</relativePath>
	</parent>

	<modelVersion>4.0.0</modelVersion>
	<artifactId>org.wso2.carbon.device.mgt.iot.raspberrypi.feature</artifactId>
	<packaging>pom</packaging>
	<name>WSO2 Carbon - IoT Server RaspberryPi Feature</name>
	<url>http://wso2.org</url>
	<description>This feature contains the RaspberryPi Device type specific implementations for the IoT Server
	</description>

	<dependencies>
		<dependency>
			<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
			<artifactId>org.wso2.carbon.device.mgt.iot.raspberrypi.plugin</artifactId>
		</dependency>
		<dependency>
			<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
			<artifactId>org.wso2.carbon.device.mgt.iot.raspberrypi.api</artifactId>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>com.h2database.wso2</groupId>
			<artifactId>h2-database-engine</artifactId>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<artifactId>maven-resources-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-resources</id>
						<phase>generate-resources</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<outputDirectory>src/main/resources</outputDirectory>
							<resources>
								<resource>
									<directory>resources</directory>
									<includes>
										<include>build.properties</include>
										<include>p2.inf</include>
									</includes>
								</resource>
							</resources>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
                    <execution>
                        <id>unpack</id>
                        <phase>package</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
								<artifactItem>
									<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
									<artifactId>org.wso2.carbon.device.mgt.iot.raspberrypi.analytics
									</artifactId>
									<version>${project.version}</version>
									<type>zip</type>
									<overWrite>true</overWrite>
									<outputDirectory>
										${project.build.directory}/maven-shared-archive-resources/carbonapps
									</outputDirectory>
									<includes>**/*</includes>
								</artifactItem>
                                <artifactItem>
                                    <groupId>org.wso2.carbon.devicemgt-plugins</groupId>
                                    <artifactId>org.wso2.carbon.device.mgt.iot.raspberrypi.ui
                                    </artifactId>
                                    <version>${project.version}</version>
                                    <type>zip</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>
                                        ${project.build.directory}/maven-shared-archive-resources/jaggeryapps/devicemgt
                                    </outputDirectory>
                                    <includes>**/*</includes>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
					<execution>
						<id>copy-jaxrs-war</id>
						<phase>package</phase>
						<goals>
							<goal>copy</goal>
						</goals>
						<configuration>
							<artifactItems>
								<artifactItem>
									<groupId>org.wso2.carbon.devicemgt-plugins</groupId>
									<artifactId>org.wso2.carbon.device.mgt.iot.raspberrypi.api
									</artifactId>
									<type>war</type>
									<overWrite>true</overWrite>
									<outputDirectory>${project.build.directory}/maven-shared-archive-resources/webapps/</outputDirectory>
									<destFileName>raspberrypi.war</destFileName>
								</artifactItem>
							</artifactItems>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<execution>
						<!-- Creating RaspberryPi Plugin Management schema -->
						<id>create-raspberrypi-plugin-mgt-schema</id>
						<phase>package</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<tasks>
								<echo message="########### Create RaspberryPi plugin Management H2 Schema ###########" />
								<property name="db.dir" value="target/maven-shared-archive-resources/database" />
								<property name="userid" value="wso2carbon" />
								<property name="password" value="wso2carbon" />
								<property name="dbURL" value="jdbc:h2:file:${basedir}/${db.dir}/RaspberryPiDM_DB;DB_CLOSE_ON_EXIT=FALSE" />

                                <mkdir dir="${basedir}/${db.dir}" />

								<sql driver="org.h2.Driver" url="${dbURL}" userid="${userid}" password="${password}" autocommit="true" onerror="continue">
									<classpath refid="maven.dependency.classpath" />
									<classpath refid="maven.compile.classpath" />
									<classpath refid="maven.runtime.classpath" />

									<fileset file="${basedir}/src/main/resources/dbscripts/h2.sql" />
								</sql>
								<echo message="##################### END ####################" />
							</tasks>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.wso2.maven</groupId>
				<artifactId>carbon-p2-plugin</artifactId>
				<version>${carbon.p2.plugin.version}</version>
				<executions>
					<execution>
						<id>p2-feature-generation</id>
						<phase>package</phase>
						<goals>
							<goal>p2-feature-gen</goal>
						</goals>
						<configuration>
							<id>org.wso2.carbon.device.mgt.iot.raspberrypi</id>
							<propertiesFile>../../../features/etc/feature.properties</propertiesFile>
							<adviceFile>
								<properties>
									<propertyDef>org.wso2.carbon.p2.category.type:server</propertyDef>
									<propertyDef>org.eclipse.equinox.p2.type.group:true</propertyDef>
								</properties>
							</adviceFile>
							<bundles>
								<bundleDef>
									org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.raspberrypi.plugin:${carbon.devicemgt.plugins.version}
								</bundleDef>
							</bundles>
							<importFeatures>
								<importFeatureDef>org.wso2.carbon.core.server:${carbon.kernel.version}
								</importFeatureDef>
								<importFeatureDef>org.wso2.carbon.device.mgt.server:${carbon.devicemgt.version}
								</importFeatureDef>
							</importFeatures>
							<includedFeatures>
								<includedFeatureDef>
									org.wso2.carbon.devicemgt-plugins:org.wso2.carbon.device.mgt.iot.analytics.feature:${carbon.devicemgt.plugins.version}
								</includedFeatureDef>
							</includedFeatures>
						</configuration>
					</execution>
				</executions>
			</plugin>

		</plugins>
	</build>
</project>
