<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.solutions.identity</groupId>
        <artifactId>identity-solution-parent</artifactId>
        <version>1.0-beta</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>wso2-identity-solution</artifactId>
    <packaging>pom</packaging>
    <name>Identity Solution : Distribution</name>

    <profiles>
        <profile>
            <id>release</id>
            <activation>
                <property>
                    <name>release</name>
                </property>
            </activation>

            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <version>2.0-alpha-4</version>
                        <executions>
                            <execution>
                                <id>unpack</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>unpack</goal>
                                </goals>
                                <configuration>
                                    <artifactItems>
                                        <!--<artifactItem>
                                            <groupId>org.wso2.solutions.identity</groupId>
                                            <artifactId>httpd-relying-party</artifactId>
                                            <version>${pom.version}</version>
                                            <type>zip</type>
                                            <overWrite>true</overWrite>
                                            <outputDirectory>
                                                target/httpd-relying-party-zip
                                            </outputDirectory>
                                        </artifactItem>-->
                                        <artifactItem>
                                            <groupId>org.wso2.wsas</groupId>
                                            <artifactId>wso2wsas</artifactId>
                                            <version>${wsas.version}</version>
                                            <type>zip</type>
                                            <overWrite>true</overWrite>
                                            <outputDirectory>${dir.build}/lib</outputDirectory>
                                        </artifactItem>
                                    </artifactItems>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.1</version>
                        <executions>
        	            <execution>
	                        <id>build-javadoc</id>
                        	<phase>process-classes</phase>
                	        <configuration>
        	                    <tasks>
	                                <javadoc packagenames="org.wso2.*"
                                	         overview="../../etc/copyright.html"
                        	                 stylesheetfile="../../etc/JavadocStyles.css"
                	                         destdir="../../target/site/documentation/apidocs"
        	                                 author="true"
	                                         breakiterator="true"
                                        	 version="true"
                                	         use="true"
                        	                 windowtitle="WSO2 Identity Solution API">

                	                    <sourcepath>
        	                                <dirset dir="../..">
	                                            <include name="**/identity-provider/src/main/java"/>
                                        	    <include name="**/token-verifier-core/src/main/java"/>
                                        	    <include name="**/base/src/main/java"/>
                                        	    <include name="**/token-verifier-service/src/main/java"/>
                                	        </dirset>
                        	            </sourcepath>

                	                    <classpath refid="maven.dependency.classpath"/>
        	                            <classpath refid="maven.compile.classpath"/>
	                                    <classpath refid="maven.runtime.classpath"/>

                	                </javadoc>
        	                    </tasks>
	                        </configuration>
                        	<goals>
        	                    <goal>run</goal>
                	        </goals>
	                    </execution>
                            <execution>
                                <id>unpack-httpd-relying-party</id>
                                <phase>package</phase>
                                <configuration>
                                    <tasks>
					<echo message="############## Initialize filter tokens #################"/>
					<filter token="wso2is_version" value="${identity.solution.version}"/>
                                        
                                        <!-- Copying release related files -->
                                        <copy file="../documentation/src/site/xdoc/release-notes.xml"
                                              tofile="${basedir}/target/tmp/release-notes.html"
                                              overwrite="true" filtering="on" />

                                        <copy file="../../README"
                                              tofile="${dir.build}/README"
                                              overwrite="true" filtering="on" />
                                        <copy file="../../LICENSE"
                                              tofile="${dir.build}/LICENSE"
                                              overwrite="true" filtering="on" />
                                        <copy file="../../NOTICE"
                                              tofile="${dir.build}/NOTICE"
                                              overwrite="true" filtering="on" />
					                    <copy todir="${dir.build}/legal" filtering="on" overwrite="true">
                                            <fileset dir="../../legal">
                                                <include name="**/**"/>
                                            </fileset>
                                        </copy>

                                        <move todir="${dir.build}/lib/wso2wsas">
                                            <fileset
                                                    dir="${dir.build}/lib/wso2wsas-${wsas.version}"/>
                                        </move>
                                        <mkdir dir="${dir.build}/lib/wso2wsas/lib/tomcat/webapps/wsas"/>

                                        <move todir="${dir.build}/lib/wso2wsas/lib/tomcat/webapps/wsas">
                                            <fileset
                                                    dir="${dir.build}/lib/wso2wsas/lib/tomcat/webapps/ROOT/"/>
                                        </move>

                                        <copy todir="${dir.build}/lib/wso2wsas/lib/tomcat/webapps/javarp">
                                            <fileset dir="../samples/servlet-filter/src/main/webapp"
                                                     excludes="**/.svn"/>
                                        </copy>

                                        <delete dir="${dir.build}/lib/wso2wsas/samples"/>
                                        <property name="dir.wsas.lib"
                                                  value="${dir.build}/lib/wso2wsas/lib/"/>

                                        <copy file="../identity-provider/conf/wsas-server.xml"
                                              tofile="${dir.build}/lib/wso2wsas/conf/server.xml"
                                              overwrite="true"/>
                                        <copy file="../identity-provider/conf/axis2.xml"
                                              tofile="${dir.build}/lib/wso2wsas/conf/axis2.xml"
                                              overwrite="true"/>
                                        <copy file="../identity-provider/conf/wso2identity-hibernate.cfg.xml"
                                              tofile="${dir.build}/lib/wso2wsas/conf/wso2identity-hibernate.cfg.xml"
                                              overwrite="true"/>
                                        <copy file="../identity-provider/conf/wso2identity.hbm.xml"
                                              tofile="${dir.build}/lib/wso2wsas/conf/wso2identity.hbm.xml"
                                              overwrite="true"/>
                                        <copy file="../identity-provider/conf/initial-claims.xml"
                                              tofile="${dir.build}/lib/wso2wsas/conf/initial-claims.xml"
                                              overwrite="true"/>
                                        <copy file="../identity-provider/conf/wso2is.jks"
                                              tofile="${dir.build}/lib/wso2wsas/conf/wso2is.jks"
                                              overwrite="true"/>
                                        <copy file="../identity-provider/conf/wso2isidps.jks"
                                              tofile="${dir.build}/lib/wso2wsas/conf/wso2isidps.jks"
                                              overwrite="true"/>
                                        <delete file="${dir.build}/lib/wso2wsas/conf/wso2wsas.jks"/>
                                        <copy file="../identity-provider/conf/card.jpg"
                                              tofile="${dir.build}/lib/wso2wsas/conf/card.jpg"
                                              overwrite="true"/>
                                        <copy file="../identity-provider/conf/infocard-issuer-config.xml"
                                              tofile="${dir.build}/lib/wso2wsas/conf/infocard-issuer-config.xml"
                                              overwrite="true"/>
                                        <copy file="../user-ui/conf/config.xml"
                                              tofile="${dir.build}/lib/wso2wsas/conf/config.xml"
                                              overwrite="true"/>

                                        <delete>
                                            <fileset dir="${dir.build}/lib/wso2wsas/conf/rampart/">
                                                <include name="*.xml"/>
                                            </fileset>
                                        </delete>
                                        <copy todir="${dir.build}/lib/wso2wsas/conf/rampart/">
                                            <fileset dir="../identity-provider/conf/rampart/">
                                                <include name="*.xml"/>
                                            </fileset>
                                        </copy>

                                        <mkdir dir="${dir.build}/certs"/>
                                        <copy file="../identity-provider/conf/cacert.crt"
                                              tofile="${dir.build}/certs/cacert.crt" overwrite="true"/>
                                        <copy file="../identity-provider/conf/cacert.pem"
                                              tofile="${dir.build}/certs/cacert.pem" overwrite="true"/>
                                        <mkdir dir="target"/>
                                        <copy file="../identity-provider/conf/hibernate.properties" tofile="target/hibernate.properties"/>

                                        <!-- Replace ramaprt jars with the latest ones -->
                                        <delete>
                                            <fileset dir="${dir.build}/lib/wso2wsas/lib">
                                                <include name="rampart-*"/>
                                                <include name="wss4j-*"/>
                                                <include name="xmlsec-*"/>
                                                <include name="opensaml-*"/>
                                            </fileset>
                                        </delete>

                                        <delete>
                                            <fileset
                                                    dir="${dir.build}/lib/wso2wsas/repository/modules/">
                                                <include name="rampart*"/>
                                                <include name="rahas*"/>
                                            </fileset>
                                        </delete>

                                        <copy file="src/conf/axis2.xml"
                                              todir="${dir.build}/lib/wso2wsas/conf"/>

                                        <echo message="################# Create Database ####################"/>

                                        <property name="sqlOutput"
                                                  value="target/tmp/schema-export.sql"/>
                                        <property name="dbURL"
                                                  value="jdbc:derby:${basedir}/target/tmp/lib/wso2wsas/database/WSO2IDENTITY_DB;create=true"/>

                                        <path id="base.hibernate.classpath">
                                            <path refid="maven.compile.classpath"/>
                                            <pathelement location="../base/target/classes"/>
                                            <pathelement location="../identity-provider/target/classes"/>
                                        </path>

                                        <path id="hibernate.classpath">
                                            <path refid="base.hibernate.classpath"/>
                                            <fileset dir="${dir.build}/lib/wso2wsas/lib">
                                                <include name="**/*.jar"/>
                                            </fileset>
                                        </path>

                                        <taskdef name="SchemaExport"
                                                 classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"
                                                 classpathref="hibernate.classpath"/>

                                        <macrodef name="create-database">
                                            <attribute name="sqlOutput" default="."/>
                                            <attribute name="dbURL" default="."/>
                                            <attribute name="userid" default="wso2is"/>
                                            <attribute name="password" default="wso2is"/>
                                            <sequential>
                                                <SchemaExport
                                                        properties="${basedir}/target/hibernate.properties"
                                                        quiet="yes"
                                                        create="yes"
                                                        text="no"
                                                        drop="no"
                                                        delimiter=";"
                                                        output="@{sqlOutput}">
                                                    <fileset
                                                            file="../identity-provider/conf/wso2identity.hbm.xml"/>
                                                </SchemaExport>

                                                <sql driver="org.apache.derby.jdbc.EmbeddedDriver"
                                                     url="@{dbURL}"
                                                     userid="@{userid}" password="@{password}"
                                                     autocommit="true" onerror="continue">
                                                    <classpath>
                                                        <path refid="hibernate.classpath"/>
                                                    </classpath>
                                                    <fileset file="@{sqlOutput}"/>
                                                </sql>
                                            </sequential>
                                        </macrodef>

                                        <create-database sqlOutput="${sqlOutput}" dbURL="${dbURL}"/>
                                        <delete file="target/tmp/schema-export.sql"/>

                                        <echo message="##################### END ############################"/>

                                        <!-- Build samples -->
                                        <echo message="########### Create Sample User Database ##############"/>
                                        <sql driver="org.apache.derby.jdbc.EmbeddedDriver"
                                             url="jdbc:derby:${basedir}/target/tmp/lib/wso2wsas/database/WSO2IDENTITY_SAMPLE_DB;create=true"
                                             userid="wso2is" password="wso2is"
                                             autocommit="true" onerror="continue">
                                            <classpath>
                                                <path refid="hibernate.classpath"/>
                                            </classpath>
                                            <fileset file="../samples/identity-provider/db.sql"/>
                                        </sql>

                                        <echo message="##################### END ############################"/>


	                                <echo message="################## Copy docs in the xdocs ####################"/>

	                                <copy todir="${basedir}/target/tmp/lib/wso2wsas/lib/tomcat/webapps/documentation" filtering="on">
        	                            <fileset dir="../../target/site/documentation">
                        	                <include name="**/**.html"/>
                	                        <include name="**/**.css"/>
        	                                <include name="**/**.xsl"/>
	                                        <include name="**/**.js"/>
                        	            </fileset>
                                	</copy>
	                                <copy todir="${basedir}/target/tmp/lib/wso2wsas/lib/tomcat/webapps/documentation">
        	                            <fileset dir="../../target/site/documentation">
                        	                <include name="**/**.png"/>
											<include name="**/**.gif"/>
											<include name="**/**.jpg"/>
										</fileset>
									</copy>
											
	                                <!-- Adding the custom maven-theme.css -->
        	                        <copy todir="${basedir}/target/tmp/lib/wso2wsas/lib/tomcat/webapps/documentation" filtering="on" overwrite="true">
                	                    <fileset dir="../documentation/src/site/resources">
                        	                <include name="**/**.css"/>
                                	    </fileset>
	                                </copy>

                                    </tasks>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <version>2.2-beta-1</version>
                        <executions>
                            <execution>
                                <id>distribution-package</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>attached</goal>
                                </goals>
                                <configuration>
                                    <descriptors>
                                        <descriptor>src/assemble/assembly-bin.xml</descriptor>
                                        <descriptor>src/assemble/assembly-src.xml</descriptor>
                                    </descriptors>
                                    <finalName>wso2-identity-solution-${pom.version}</finalName>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                </plugins>
            </build>

            <dependencies>
                <dependency>
                    <groupId>org.wso2.solutions.identity</groupId>
                    <artifactId>identity-provider</artifactId>
                    <version>${pom.version}</version>
                </dependency>

                <dependency>
                    <groupId>org.wso2.solutions.identity</groupId>
                    <artifactId>base</artifactId>
                    <version>${pom.version}</version>
                </dependency>

                <dependency>
                    <groupId>org.wso2.solutions.identity</groupId>
                    <artifactId>token-verifier-core</artifactId>
                    <version>${pom.version}</version>
                </dependency>

                <dependency>
                    <groupId>org.wso2.solutions.identity</groupId>
                    <artifactId>idp-sample</artifactId>
                    <version>${pom.version}</version>
                </dependency>

                <dependency>
                    <groupId>org.wso2.solutions.identity</groupId>
                    <artifactId>token-verifier-service</artifactId>
                    <version>${pom.version}</version>
                    <type>aar</type>
                </dependency>
                <dependency>
                    <groupId>org.wso2.solutions.identity</groupId>
                    <artifactId>security-token-service</artifactId>
                    <version>${pom.version}</version>
                    <type>aar</type>
                </dependency>
                <dependency>
                    <groupId>org.wso2.solutions.identity</groupId>
                    <artifactId>identity-mex</artifactId>
                    <version>${pom.version}</version>
                    <type>aar</type>
                </dependency>
                <dependency>
                    <groupId>org.wso2.solutions.identity</groupId>
                    <artifactId>admin-ui</artifactId>
                    <version>${pom.version}</version>
                    <type>war</type>
                </dependency>
                <dependency>
                    <groupId>org.wso2.solutions.identity</groupId>
                    <artifactId>user-app-ui</artifactId>
                    <version>${pom.version}</version>
                    <type>war</type>
                </dependency>

                <dependency>
                    <groupId>opensymphony</groupId>
                    <artifactId>ognl</artifactId>
                    <version>2.6.11</version>
                </dependency>

                <dependency>
                    <groupId>com.opensymphony</groupId>
                    <artifactId>xwork</artifactId>
                    <version>2.0.4</version>
                </dependency>

                <dependency>
                    <groupId>logkit</groupId>
                    <artifactId>logkit</artifactId>
                    <version>1.0.1</version>
                </dependency>

            </dependencies>


        </profile>
    </profiles>

</project>
