<?xml version="1.0" encoding="UTF-8"?>
<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>

    <groupId>org.mule.examples</groupId>
    <artifactId>examples-catalog</artifactId>
    <version>1.4.0</version>
    <packaging>pom</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <eclipsePluginVersion>2.8</eclipsePluginVersion>
        <jdkName>JavaSE-1.8</jdkName>
        <jdk.version>1.8</jdk.version>
        <assembly-descriptor-version>1.0.16</assembly-descriptor-version>
        <muleServerId>org.mule.tooling.server.3.8.0.ee</muleServerId>
        <muleConfigVersion>EE-3.8.0</muleConfigVersion>
        <mule.version>3.8.0</mule.version>
        <muleSchemaVersion>3.5.0.0</muleSchemaVersion>
		<sfdc.version>7.1.0</sfdc.version>
		<mule.tools.version>1.0</mule.tools.version>
		<mule.test.timeoutSecs>60</mule.test.timeoutSecs>
		<munit.version>1.1.0</munit.version>
		<mule.munit.support.version>3.8.0</mule.munit.support.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.mule.tools.maven</groupId>
                <artifactId>mule-app-maven-plugin</artifactId>
                <version>${mule.tools.version}</version>
                <extensions>true</extensions>
                <configuration>
					<copyToAppsDirectory>true</copyToAppsDirectory>
				</configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.2.1</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>project</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.5</version>
                <configuration>
                    <tagNameFormat>v@{project.version}</tagNameFormat>
                    <pushChanges>false</pushChanges>
                    <autoversionsubmodules>true</autoversionsubmodules>
                </configuration>
            </plugin>            
            <plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <useFile>false</useFile>
                    <argLine>-Xmx1024m -XX:MaxPermSize=512m</argLine>
                    <additionalClasspathElements>
                        <additionalClasspathElement>${MULE_HOME}/conf/</additionalClasspathElement>
                        <!-- Location of the mule license in Bamboo muleLicenseKey.lic -->
                        <additionalClasspathElement>/home/j2ee-bamboo/license/</additionalClasspathElement>
                    </additionalClasspathElements>
                    <systemProperties>
                        <property>
                            <name>mule.env</name>
                            <value>${mule.env}</value>
                        </property>
                        <property>
                            <name>mule.test.timeoutSecs</name>
                            <value>${mule.test.timeoutSecs}</value>
                        </property>
                        <property>
                            <name>mule.verbose.exceptions</name>
                            <value>${mule.verbose.exceptions}</value>
                        </property>
                        <property>
                            <name>http.port</name>
                            <value>${http.port}</value>
                        </property>
                    </systemProperties>
                </configuration>
            </plugin>
			
			<!--Random port definition for test-->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<version>1.9</version>
				<executions>
					<execution>
						<id>reserve-network-port</id>
						<goals>
							<goal>reserve-network-port</goal>
						</goals>
						<phase>process-resources</phase>
						<configuration>
							<portNames>
								<portName>http.port</portName>
							</portNames>
						</configuration>
					</execution>
				</executions>
			</plugin>
        </plugins>
	</build>

    <profiles>
      <profile>
            <id>studio-release</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <modules>
                <module>addition-using-javascript-transformer</module>
                <module>authenticating-salesforce-using-oauth2</module>
                <module>cache-scope-with-fibonacci</module>
                <module>content-based-routing</module>
                <module>dataweave-with-flowreflookup</module>
                <module>document-integration-using-the-cmis-connector</module>
                <module>extracting-data-from-LDAP-directory</module>
                <module>filtering-a-message</module>
                <module>foreach-processing-and-choice-routing</module>
                <module>hello-world</module>
                <module>http-request-response-with-logger</module>
                <module>implementing-a-choice-exception-strategy</module>
                <module>import-contacts-into-salesforce</module>
                <module>importing-a-CSV-file-into-Mongo-DB</module>
                <module>importing-an-email-attachment-using-the-IMAP-connector</module>
                <module>importing-an-email-attachment-using-the-POP3-connector</module>
                <module>jms-message-rollback-and-redelivery</module>
                <module>legacy-modernization</module>
        <!-- 	<module>mule-component-bindings</module> -->
                <module>mule-expression-language-basics</module>
                <module>proxying-a-rest-api</module>
                <module>proxying-a-soap-api</module>
                <module>querying-a-db-and-attaching-results-to-an-email</module>
                <module>querying-a-mysql-database</module>
                <module>rest-api-with-apikit</module>
                <module>salesforce-data-synchronization-using-watermarking-and-batch-processing</module>
                <module>salesforce-to-MySQL-DB-using-Batch-Processing</module>
                <module>scatter-gather-flow-control</module>
                <module>sending-a-csv-file-through-email-using-smtp</module>
                <module>sending-json-data-to-a-amqp-queue</module>
                <module>sending-json-data-to-a-jms-queue</module>
                <module>service-orchestration-and-choice-routing</module>
                <module>soap-webservice-security</module>
                <module>track-a-custom-business-event</module>
                <module>upload-to-ftp-after-converting-json-to-xml</module>
                <module>using-transactional-scope-in-jms-to-database</module>
                <module>web-service-consumer</module>
                <module>websphere-mq</module>
                <module>xml-only-soap-webservice</module>
                <module>exposing-a-restful-resource-using-the-HTTP-connector</module>
                <module>login-form-using-the-http-connector</module>
                <module>oauth2-authorization-code-using-the-HTTP-connector</module>
        <!-- 	<module>oauth2-client-credentials-using-the-HTTP-connector</module> -->
                <module>salesforce-data-retrieval</module>
                <module>import-contacts-into-ms-dynamics</module>
                <module>get-customer-list-from-netsuite</module>
                <module>adding-a-new-customer-to-workday-revenue-management</module>
                <!-- <module>importing-a-csv-file-into-ms-sharepoint</module> -->
                <module>import-leads-into-salesforce</module>
                <module>processing-orders-with-dataweave-and-APIkit</module>
                <module>munit-short-tutorial</module>
                <module>testing-apikit-with-munit</module>
                <module>sap-data-retrieval</module>
            </modules>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <version>2.2.1</version>
                        <dependencies>
                            <dependency>
                                <groupId>org.mule.templates</groupId>
                                <artifactId>templates-tooling-assembly-descriptor</artifactId>
                                <version>${assembly-descriptor-version}</version>
                            </dependency>
                        </dependencies>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <appendAssemblyId>false</appendAssemblyId>
                                    <descriptorRefs>
                                        <descriptorRef>maven-no-test-descriptor</descriptorRef>
                                        <descriptorRef>studio-no-test-descriptor</descriptorRef>
                                    </descriptorRefs>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
		            <plugin>
		                <groupId>com.google.code.maven-replacer-plugin</groupId>
		                <artifactId>replacer</artifactId>
		                <version>1.5.3</version>
		                <executions>
		                    <execution>
		                        <id>replace-config-versions</id>
		                        <phase>initialize</phase>
		                        <goals>
		                            <goal>replace</goal>
		                        </goals>

		                        <configuration>
		                            <basedir>${project.basedir}</basedir>
		                            <preserveDir>true</preserveDir>
		                            <includes>
		                                <include>src/main/app/*.xml</include>
		                                <include>src/test/resources/**/test-flows.xml</include>
		                            </includes>
		                            <replacements>
		                                <replacement>
		                                    <xpath>/mule/@version</xpath>
		                                    <token>^.*</token>
		                                    <value>${muleConfigVersion}</value>
		                                </replacement>
		                            </replacements>
		                        </configuration>
		                    </execution>
		                    <execution>
		                        <id>replace-project-versions</id>
		                        <phase>initialize</phase>
		                        <goals>
		                            <goal>replace</goal>
		                        </goals>

		                        <configuration>
		                            <basedir>${project.basedir}</basedir>
		                            <preserveDir>true</preserveDir>
		                            <includes>
		                                <include>mule-project.xml</include>
		                            </includes>
		                            <replacements>
		                                <replacement>
		                                    <xpath>/mule-project/@runtimeId</xpath>
		                                    <token>^.*</token>
		                                    <value>${muleServerId}</value>
		                                </replacement>
		                                <replacement>
		                                    <xpath>/mule-project/@schemaVersion</xpath>
		                                    <token>^.*</token>
		                                    <value>${muleSchemaVersion}</value>
		                                </replacement>
		                            </replacements>
		                        </configuration>
		                    </execution>
							<execution>
								<id>replace-project-name-with-version</id>
								<phase>validate</phase>
								<goals>
									<goal>replace</goal>
								</goals>
								<configuration>
									<basedir>${project.basedir}</basedir>
									<regex>true</regex>
									<preserveDir>true</preserveDir>
									<includes>
										<include>mule-project.xml</include>
									</includes>
									<replacements>
										<replacement>
											<token>&lt;name&gt;.*&lt;/name&gt;</token>
											<value>&lt;name&gt;${project.artifactId}_${project.version}&lt;/name&gt;</value>
										</replacement>
									</replacements>
								</configuration>
							</execution>		                    
		                </executions>
		            </plugin>

		            <plugin>
						<groupId>com.mycila.maven-license-plugin</groupId>
						<artifactId>maven-license-plugin</artifactId>
						<version>1.8.0</version>
						<configuration>
							<header>NOTICE</header>
							<excludes>
								<exclude>target/**</exclude>
								<exclude>src/main/java/com/sforce/**</exclude>
								<exclude>**/.gitignore</exclude>
								<exclude>**/*.txt</exclude>
								<exclude>**/*.ftl</exclude>
								<exclude>**/*.xml</exclude>
								<exclude>**/*.properties</exclude>
								<exclude>**/*.sample</exclude>
								<exclude>**/*.md</exclude>
								<exclude>**/build-number.txt</exclude>
								<exclude>**/*.sql</exclude>
								<exclude>**/*.css</exclude>
								<exclude>**/*.js</exclude>
								<exclude>LICENSE</exclude>
								<exclude>NOTICE</exclude>
							</excludes>
							</configuration>
						<executions>
							<execution>
								<goals>
									<goal>check</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <!-- Mule Dependencies -->
    <dependencies>
        <dependency>
            <groupId>org.mule</groupId>
            <artifactId>mule-core</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>
        <!-- Xml configuration -->
        <dependency>
            <groupId>org.mule.modules</groupId>
            <artifactId>mule-module-spring-config</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>

        <!-- Mule Transports -->
        <dependency>
            <groupId>org.mule.transports</groupId>
            <artifactId>mule-transport-file</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mule.transports</groupId>
            <artifactId>mule-transport-http</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mule.transports</groupId>
            <artifactId>mule-transport-jdbc</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mule.transports</groupId>
            <artifactId>mule-transport-jms</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mule.transports</groupId>
            <artifactId>mule-transport-vm</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>

        <!-- Mule Modules -->
        <dependency>
            <groupId>org.mule.modules</groupId>
            <artifactId>mule-module-client</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mule.modules</groupId>
            <artifactId>mule-module-cxf</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mule.modules</groupId>
            <artifactId>mule-module-management</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mule.modules</groupId>
            <artifactId>mule-module-scripting</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mule.modules</groupId>
            <artifactId>mule-module-sxc</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mule.modules</groupId>
            <artifactId>mule-module-xml</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>
        <!-- for testing -->
        <dependency>
            <groupId>org.mule.tests</groupId>
            <artifactId>mule-tests-functional</artifactId>
            <version>${mule.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>mockobjects</groupId>
            <artifactId>mockobjects-core</artifactId>
            <version>0.09</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>mulesoft-releases</id>
            <name>MuleSoft Releases Repository</name>
            <url>https://repository.mulesoft.org/releases/</url>
            <layout>default</layout>
        </repository>
        <repository>
            <id>mulesoft-snapshots</id>
            <name>MuleSoft Snapshots Repository</name>
            <url>https://repository.mulesoft.org/snapshots/</url>
            <layout>default</layout>
        </repository>
        <repository>
            <id>mulesoft-public</id>
            <name>MuleSoft Public Repository</name>
            <url>https://repository.mulesoft.org/nexus/content/repositories/public/</url>
            <layout>default</layout>
        </repository>
        <repository>
            <id>jboss</id>
            <name>JBoss</name>
            <url>http://repository.jboss.com/</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>mulesoft-releases</id>
            <name>MuleSoft Releases Repository</name>
            <url>https://repository.mulesoft.org/releases/</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>mulesoft-snapshots</id>
            <name>MuleSoft Snapshots Repository</name>
            <url>https://repository.mulesoft.org/snapshots/</url>
            <layout>default</layout>
        </pluginRepository>
    </pluginRepositories>

    <distributionManagement>
		<repository>
			<id>mulesoft-releases</id>
			<name>MuleSoft Repository</name>
			<url>http://repository-master.mulesoft.org/releases/</url>
		</repository>
		<snapshotRepository>
			<id>mulesoft-snapshots</id>
			<name>MuleSoft Snapshot Repository</name>
			<url>http://repository-master.mulesoft.org/snapshots/</url>
			<uniqueVersion>false</uniqueVersion>
		</snapshotRepository>
	</distributionManagement>

    <scm>
        <connection>scm:git:https://github.com/mulesoft/anypoint-examples.git</connection>
        <developerConnection>scm:git:https://github.com/mulesoft/anypoint-examples.git</developerConnection>
        <url>https://github.com/mulesoft/anypoint-examples</url>
        <tag>v1.4.0</tag>
    </scm>

</project>