<?org.wso2.uesxml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2014, 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/xsd/maven-4.0.0.xsd">

    <parent>
        <groupId>org.wso2.cdmserver</groupId>
        <artifactId>wso2cdmserver-product</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>wso2cdm</artifactId>
    <packaging>jar</packaging>
    <name>WSO2 Connected Device Manager (CDM) - Distribution</name>
    <description>WSO2 Connected Device Manager (CDM) Distribution</description>

    <dependencies>
        <dependency>
            <groupId>com.h2database.wso2</groupId>
            <artifactId>h2-database-engine</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>${maven-buildnumber-plugin.version}</version>
                <configuration>
                    <format>{0,date,dd MMM yyyy}</format>
                    <items>
                        <item>timestamp</item>
                    </items>
                    <doCheck>false</doCheck>
                    <doUpdate>false</doUpdate>
                </configuration>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <!--<version>${maven-dependency-plugin.version}</version>-->
                <inherited>false</inherited>
                <executions>
                    <execution>
                        <id>2-unpack-wso2carbon</id>
                        <phase>package</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.wso2.carbon</groupId>
                                    <artifactId>wso2carbon-core</artifactId>
                                    <version>${carbon.kernel.version}</version>
                                    <type>zip</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>target</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <!--<version>${maven-antrun-plugin.version}</version>-->
                <executions>
                    <execution>
                        <!-- Creating Device Management schema -->
                        <id>create-device-mgt-schema</id>
                        <phase>package</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <echo message="########### Create Device Management H2 Schema ###########" />

                                <property name="db.dir" value="target/wso2carbon-core-${carbon.kernel.version}/repository/database" />
                                <property name="userid" value="wso2carbon" />
                                <property name="password" value="wso2carbon" />
                                <property name="dbURL" value="jdbc:h2:file:${basedir}/${db.dir}/WSO2DM_DB;DB_CLOSE_ON_EXIT=FALSE" />

                                <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}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/cdm/h2.sql" />
                                </sql>
                                <echo message="##################### END ####################" />
                            </tasks>
                        </configuration>
                    </execution>
                   <!-- <execution>
                        &lt;!&ndash; Creating IDP Management schema &ndash;&gt;
                        <id>create-idp-mgt-schema</id>
                        <phase>package</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <echo message="########### Create IDP Management H2 Schema ###########" />

                                <property name="db.dir" value="target/wso2carbon-core-${carbon.kernel.version}/repository/database" />
                                <property name="userid" value="wso2carbon" />
                                <property name="password" value="wso2carbon" />
                                <property name="dbURL" value="jdbc:h2:file:${basedir}/${db.dir}/WSO2CARBON_DB;DB_CLOSE_ON_EXIT=FALSE" />

                                <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}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/identity/application-mgt/h2.sql" />
                                </sql>
                                <echo message="##################### END ####################" />
                            </tasks>
                        </configuration>
                    </execution>
                    <execution>
                        &lt;!&ndash; Creating API Management schema &ndash;&gt;
                        <id>create-api-mgt-schema</id>
                        <phase>package</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <echo message="########### Create API Management H2 Schema ###########" />

                                <property name="db.dir" value="target/wso2carbon-core-${carbon.kernel.version}/repository/database" />
                                <property name="userid" value="wso2carbon" />
                                <property name="password" value="wso2carbon" />
                                <property name="dbURL" value="jdbc:h2:file:${basedir}/${db.dir}/WSO2AM_DB;DB_CLOSE_ON_EXIT=FALSE" />

                                <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}/../p2-profile-gen/target/wso2carbon-core-${carbon.kernel.version}/dbscripts/apimgt/h2.sql" />
                                </sql>
                                <echo message="##################### END ####################" />
                            </tasks>
                        </configuration>
                    </execution>-->
                    <execution>
                        <id>3-extract-docs-from-components</id>
                        <phase>package</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <tasks>
                                <property name="tempdir" value="target/docs-temp" />
                                <property name="jardir" value="target/jars" />
                                <!--<property name="shindig.version" value="2.5.0-beta5" />-->

                                <mkdir dir="${tempdir}" />
                                <mkdir dir="${tempdir}/wso2cdm-${project.version}/repository/components" />
                                <mkdir dir="${tempdir}/wso2cdm-${project.version}/repository/deployment/server" />
                                <mkdir dir="${tempdir}/wso2cdm-${project.version}/repository/deployment/server/webapps" />
                                <unzip dest="${tempdir}">
                                    <fileset dir="target">
                                        <include name="wso2cdm-${project.version}.zip" />
                                    </fileset>
                                </unzip>
                                <copy todir="target/wso2carbon-core-${carbon.kernel.version}/repository/components" overwrite="true">
                                    <fileset dir="${tempdir}/wso2cdm-${project.version}/repository/components" />
                                </copy>
                                <!--testing -->
                                <!--<unzip src="target/shindig/WEB-INF/lib/shindig-common-${shindig.version}.jar" dest="${jardir}/shindig-common-${shindig.version}">
                                    <patternset>
                                        <exclude name="**/shindig.properties" />
                                    </patternset>
                                </unzip>
                                <copy file="src/repository/conf/shindig.properties" todir="${jardir}/shindig-common-${shindig.version}" />
                                <delete file="target/shindig/WEB-INF/lib/shindig-common-${shindig.version}.jar" />
                                <zip destfile="target/shindig/WEB-INF/lib/shindig-common-${shindig.version}.jar" basedir="${jardir}/shindig-common-${shindig.version}" />
                                <delete>
                                    <fileset dir="target/shindig/WEB-INF/lib" includes="slf4j*" />
                                </delete>
                                <copy file="src/repository/resources/shindig/index.jsp" todir="target/shindig" />-->

                                <concat destfile="target/wso2carbon-core-${carbon.kernel.version}/repository/log4j.properties">
                                    og4j.logger.net.sf.ehcache=ERROR
                                </concat>

                                <delete file="target/wso2cdm-${project.version}.zip" />
                                <delete dir="${tempdir}" />
                            </tasks>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy_modules_apps</id>
                        <phase>package</phase>
                        <configuration>
                            <tasks>
                                <mkdir dir="target/wso2carbon-core-${carbon.kernel.version}/repository/deployment/server/webapps" />

                                <!--<copy todir="target/wso2carbon-core-${carbon.kernel.version}/modules" overwrite="true">
                                    <fileset dir="src/repository/modules"></fileset>
                                </copy>
                                <copy todir="target/wso2carbon-core-${carbon.kernel.version}/repository/deployment/server/jaggeryapps" overwrite="true">
                                    <fileset dir="../apps"></fileset>
                                </copy>

                                <copy todir="target/wso2carbon-core-${carbon.kernel.version}/repository/components/plugins" overwrite="true">
                                    <fileset dir="src/repository/components/patches/apimgt"></fileset>
                                </copy>-->

                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>clean_target</id>
                        <phase>install</phase>
                        <configuration>
                            <tasks>
                                <delete dir="target/jars" />
                                <delete dir="target/*.xml" />
                                <delete dir="target/archive-tmp" />
                                <delete dir="target/dependency-maven-plugin-markers" />
                                <delete dir="target/maven-archiver" />
                                <delete dir="target/wso2carbon-core-${carbon.kernel.version}" />
                                <delete dir="target/wso2carbon-core-${carbon.kernel.version}" />
                                <delete file="target/wso2cdm-${project.version}.jar" />
                                <delete dir="target/sources" />
                                <delete dir="target/site" />
                                <delete dir="target/antrun" />
                                <delete dir="src/site" />
                                <!--<delete dir="target/shindig" />-->
                                <delete dir="target/jaxwebapps" />
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <!--<version>2.5.2</version>-->
                <executions>
                    <execution>
                        <id>1-pre-dist</id>
                        <phase>test</phase>
                        <!--we are creating a temporary carbon distribution for document extracting purposes during the test phase-->
                        <goals>
                            <goal>attached</goal>
                        </goals>
                        <configuration>
                            <appendAssemblyId>false</appendAssemblyId>
                            <filters>
                                <filter>${basedir}/src/assembly/filter.properties</filter>
                            </filters>
                            <descriptors>
                                <descriptor>${basedir}/src/assembly/dist.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </execution>

                    <execution>
                        <id>2-dist</id>
                        <phase>package</phase>
                        <goals>
                            <goal>attached</goal>
                        </goals>
                        <configuration>
                            <appendAssemblyId>false</appendAssemblyId>
                            <filters>
                                <filter>${basedir}/src/assembly/filter.properties</filter>
                            </filters>
                            <descriptors>
                                <descriptor>${basedir}/src/assembly/bin.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

           <!-- <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <executions>
                    <execution>
                        <id>auto-clean</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>-->
        </plugins>
    </build>

</project>