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

	<artifactId>hakken-android-client</artifactId>
	<packaging>apk</packaging>
	<name>hakken</name>

	<parent>
		<groupId>uk.co.vurt.hakken</groupId>
		<artifactId>parent</artifactId>
		<version>1.0.0</version>
	</parent>

	<properties>
		<android.version>4.1.1.4</android.version>
		<android.platform>13</android.platform>
		<android.support.version>r7</android.support.version>
		<android.emulator.name>HTCDesire</android.emulator.name>
		<maven.android.plugin.version>3.3.0</maven.android.plugin.version>
		<parent.dir>${project.basedir}/../</parent.dir>
		<actionBarSherlock.version>4.1.0</actionBarSherlock.version>
	</properties>

	<dependencies>
		<!-- Android gubbins -->
		<dependency>
			<groupId>com.google.android</groupId>
			<artifactId>android</artifactId>
			<version>${android.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>com.google.android</groupId>
			<artifactId>android-test</artifactId>
			<version>${android.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>com.google.android</groupId>
			<artifactId>support-v4</artifactId>
			<version>${android.support.version}</version>
		</dependency>
        <dependency>
            <groupId>com.google.android</groupId>
            <artifactId>annotations</artifactId>
            <version>${android.version}</version>
        </dependency>
        
		<!-- hakken modules -->
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>hakken-security</artifactId>
			<version>${project.version}</version>
			<!-- have to exclude logging stuff as they use non-android-supported APIs -->
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>jcl-over-slf4j</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
				<exclusion>
					<groupId>log4j</groupId>
					<artifactId>log4j</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>hakken-domain</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!-- Coalesce QL Parser -->
		<dependency>
			<groupId>net.wmfs.coalesce</groupId>
			<artifactId>net.wmfs.coalesce.csql</artifactId>
			<version>0.1</version>
		</dependency>

		<!-- Json parser -->
		<!-- Jackson JSON library -->
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-asl</artifactId>
			<version>${jackson.version}</version>
		</dependency>
		
		<!-- ActionbarSherlock
		<dependency>
            <groupId>com.actionbarsherlock</groupId>
            <artifactId>library</artifactId>
            <version>${actionBarSherlock.version}</version>
            <type>apklib</type>
        </dependency>
        <dependency>
            <groupId>com.actionbarsherlock</groupId>
            <artifactId>library</artifactId>
            <version>${actionBarSherlock.version}</version>
            <type>jar</type>
            <scope>provided</scope>
        </dependency>
         -->
	</dependencies>

	<build>
		<finalName>hakken</finalName>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<configuration>
						<source>1.6</source>
						<target>1.6</target>
					</configuration>
				</plugin>
				<plugin>
					<groupId>com.jayway.maven.plugins.android.generation2</groupId>
					<artifactId>android-maven-plugin</artifactId>
					<version>${maven.android.plugin.version}</version>
					<configuration>
						<sdk>
							<platform>${android.platform}</platform>
						</sdk>
						<androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
						<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
						<assetsDirectory>${project.basedir}/assets</assetsDirectory>
						<resourceDirectory>${project.basedir}/res</resourceDirectory>
						<nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory>
						<deleteConflictingFiles>true</deleteConflictingFiles>
						<undeployBeforeDeploy>true</undeployBeforeDeploy>
					</configuration>
					<extensions>true</extensions>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<groupId>com.jayway.maven.plugins.android.generation2</groupId>
				<artifactId>android-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
	
	<profiles>
	   <profile>
            <id>release</id>
            <!-- via this activation the profile is automatically used when the 
                 release is done with the maven release plugin -->
            <activation>
                <property>
                    <name>performRelease</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jarsigner-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>signing</id>
                                <goals>
                                    <goal>sign</goal>
                                    <goal>verify</goal>
                                </goals>
                                <phase>package</phase>
                                <inherited>true</inherited>
                                <configuration>
                                    <removeExistingSignatures>true</removeExistingSignatures>
                                    <archiveDirectory />
                                    <includes>
                                        <include>${project.build.directory}/${project.build.finalName}.apk</include>
                                    </includes>
                                    <keystore>${hakken.sign.keystore}</keystore>
                                    <alias>${hakken.sign.alias}</alias>
                                    <storepass>${hakken.sign.storepass}</storepass>
                                    <keypass>${hakken.sign.keypass}</keypass>
                                    <verbose>true</verbose>
                                    <!--  required because signing algorithm in 
                                    jdk1.7 is incompatible with android so we 
                                    need to revert to the scheme used in jdk1.6 
                                    and previous-->
                                    <arguments>
                                        <argument>-sigalg</argument><argument>MD5withRSA</argument>
                                        <argument>-digestalg</argument><argument>SHA1</argument>
                                    </arguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <!-- the signed apk then needs to be zipaligned -->
                    <plugin>
                        <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                        <artifactId>android-maven-plugin</artifactId>
                        <inherited>true</inherited>
                        <configuration>
                            <sign>
                                <debug>false</debug>
                            </sign>
                            <zipalign>
                                <verbose>true</verbose>
                                <inputApk>${project.build.directory}/${project.build.finalName}.apk</inputApk>
                                <outputApk>${project.build.directory}/${project.build.finalName}-signed-aligned.apk
                                </outputApk>
                            </zipalign>
                            <manifest>
                                <debuggable>false</debuggable>
                                <versionCodeAutoIncrement>true</versionCodeAutoIncrement>
                            </manifest>
                            <proguard>
                                <skip>true</skip>
                            </proguard>
                        </configuration>
                        <executions>
                            <execution>
                                <id>manifestUpdate</id>
                                <phase>process-resources</phase>
                                <goals>
                                    <goal>manifest-update</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>alignApk</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>zipalign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
	</profiles>
</project>
