<?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/maven-v4_0_0.xsd">

	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>com.atlassian.rm</groupId>
		<artifactId>common-plugin-parent-pom</artifactId>
		<version>10.3.7</version>
		<relativePath>../../common/common-plugin-parent-pom/pom.xml</relativePath>
	</parent>

    <groupId>com.atlassian</groupId>
	<artifactId>portfolio-plugin</artifactId>

	<name>Portfolio 2 / Portfolio [Plugin]</name>

	<packaging>${packaging-type}</packaging>

	<properties>
		<amps.resources>${basedir}/../../../builds/jira-resources/${arj.base.amps.jira.home.resource.name}</amps.resources>

		<webpack.scripts.config>webpack-conf/prod/webpack.scripts.js</webpack.scripts.config>
		<webpack.styles.config>webpack-conf/prod/webpack.styles.js</webpack.styles.config>
		<webpack.views.config>webpack-conf/prod/webpack.views.js</webpack.views.config>

		<maven.build.cache.exclude.portfolioPluginNodeModules>${project.basedir}/node_modules</maven.build.cache.exclude.portfolioPluginNodeModules>
	</properties>

	<dependencies>
		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>common-public-api-rest</artifactId>
			<version>${project.version}</version>
			<scope>compile</scope>
			<exclusions>
				<exclusion>
					<groupId>org.apache.tomcat.embed</groupId>
					<artifactId>tomcat-embed-core</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>common-public-api</artifactId>
			<version>${project.version}</version>
			<scope>compile</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>common-public-api-core</artifactId>
			<version>${project.version}</version>
			<scope>compile</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-public-api</artifactId>
			<version>${project.version}</version>
			<scope>compile</scope>
			<exclusions>
				<exclusion>
					<groupId>com.atlassian.rm</groupId>
					<artifactId>portfolio-environment</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-public-api-core</artifactId>
			<version>${project.version}</version>
			<scope>compile</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-public-api-rest</artifactId>
			<version>${project.version}</version>
			<scope>compile</scope>
			<exclusions>
				<exclusion>
					<groupId>com.atlassian.rm</groupId>
					<artifactId>portfolio-environment</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-web</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>team-management-public-api</artifactId>
			<version>${project.version}</version>
			<scope>compile</scope>
			<exclusions>
				<exclusion>
					<groupId>com.atlassian.rm</groupId>
					<artifactId>portfolio-environment</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>team-management-public-api-core</artifactId>
			<version>${project.version}</version>
			<scope>compile</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>team-management-public-api-rest</artifactId>
			<version>${project.version}</version>
			<scope>compile</scope>
			<exclusions>
				<exclusion>
					<groupId>com.atlassian.rm</groupId>
					<artifactId>portfolio-environment</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-web</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>common-plugin-standard-dependencies</artifactId>
			<version>${project.version}</version>
			<type>pom</type>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>common-gdpr-handlers</artifactId>
			<version>${project.version}</version>
			<scope>compile</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-gdpr</artifactId>
			<version>${project.version}</version>
			<scope>compile</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-environment-jira</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-core</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-rest</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!-- dependency needed for maven bundle plugin -> for embedding it as an inline dependency -->
		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>common-rest</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-customfields</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-customfields-lucene</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-jql-functions</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-customfields-server</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>com.atlassian.upm</groupId>
			<artifactId>licensing-api</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.upm</groupId>
			<artifactId>upm-api</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.plugins.rest</groupId>
			<artifactId>atlassian-rest-v2-api</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.json</groupId>
			<artifactId>atlassian-json-api</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- issue loading -->

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-issueloading</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-issueloading-lucene</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-environment</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!-- other libs -->

		<dependency>
			<groupId>joda-time</groupId>
			<artifactId>joda-time</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- test -->

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>common-test-utils</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.objenesis</groupId>
			<artifactId>objenesis</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- active objects -->

		<dependency>
			<groupId>com.atlassian.activeobjects</groupId>
			<artifactId>activeobjects-plugin</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.activeobjects</groupId>
			<artifactId>activeobjects-spi</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>com.querydsl</groupId>
			<artifactId>querydsl-sql</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- sal -->

		<dependency>
			<groupId>com.atlassian.sal</groupId>
			<artifactId>sal-api</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- team management bridges -->

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-team-management-bridge-api</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-team-management-bridge-0.0</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!-- lucene abstraction -->

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-lucene-bridge-api</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!-- lucene -->

		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-core</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-analyzers-common</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-queryparser</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian</groupId>
			<artifactId>lucene-extras</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- inline-issue-create bridges -->

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-inline-issue-create-bridge-api</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-inline-issue-create-bridge-1.1.0</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!-- test -->

		<dependency>
			<groupId>org.reflections</groupId>
			<artifactId>reflections</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- needed to reflect into rest components -->

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>common-rest</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-environment-test-utils</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-environment-test-utils-jira</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>team-management-api</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>team-management-core</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>common-plugin</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>common-core</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.rm</groupId>
			<artifactId>portfolio-lucene-bridge-dev-utils</artifactId>
			<version>${project.version}</version>
			<type>pom</type>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- Without this, unit tests fail because the OSGi Version class cannot be found -->
		<!-- See tech debit issue JPO-5620 -->
		<dependency>
			<groupId>com.atlassian.jira</groupId>
			<artifactId>jira-core</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>com.atlassian.jira</groupId>
			<artifactId>jira-api</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- tests -->
		<dependency>
			<groupId>com.atlassian.jira</groupId>
			<artifactId>jira-tests</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>junit</groupId>
					<artifactId>junit</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.mockito</groupId>
					<artifactId>mockito-core</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>com.atlassian.functest</groupId>
			<artifactId>functest-plugin</artifactId>
			<version>${functest.plugin.version}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.glassfish.jersey.media</groupId>
			<artifactId>jersey-media-jaxb</artifactId>
			<scope>test</scope>
		</dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-tests</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

	<build>
		<plugins>
			<plugin>
				<artifactId>maven-clean-plugin</artifactId>
				<configuration>
					<filesets>
						<fileset>
							<directory>src/main/resources</directory>
							<includes>
								<include>analytics/whitelist.json</include>
								<include>views/**/*.vm</include>
							</includes>
						</fileset>
					</filesets>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<version>1.9.1</version>
				<executions>
					<execution>
						<id>add-test-source</id>
						<phase>generate-test-sources</phase>
						<goals>
							<goal>add-test-source</goal>
						</goals>
						<configuration>
							<sources combine.children="append">
								<!--
									don't include ALL plugin components as views conflict in weird and potentially
									jira-buggy ways when provided by both the main and the test plugin
								-->
								<source>src/main/java/com/atlassian/rm/common/plugin/lifecycle</source>

								<!-- spis -->
								<source>src/main/java/com/atlassian/rm/jpo/plugin/ao</source>
								<source>src/main/java/com/atlassian/rm/jpo/plugin/pocketknife</source>
								<source>src/main/java/com/atlassian/rm/jpo/plugin/views/common/data/features</source>

								<source>src/main/java/com/atlassian/rm/teams/publicapi/interfaces</source>

								<!-- components to be wired-tested -->
								<source>src/main/java/com/atlassian/rm/jpo/plugin/recentlyvisited</source>

								<!-- wired its -->
								<source>${wired.test.directory}</source>

								<source>../portfolio-core/${wired.test.directory}</source>
								<source>../portfolio-gdpr/${wired.test.directory}</source>
								<source>../portfolio-customfields/${wired.test.directory}</source>
								<source>../portfolio-jql-functions/${wired.test.directory}</source>
								<source>../portfolio-rest/${wired.test.directory}</source>
								<source>../portfolio-environment-jira/${wired.test.directory}</source>

								<source>../portfolio-issueloading/${wired.test.directory}</source>
								<source>../portfolio-issueloading-lucene/${wired.test.directory}</source>

								<source>../portfolio-team-management-bridge/portfolio-team-management-bridge-api/${wired.test.directory}</source>
								<source>../portfolio-team-management-bridge/portfolio-team-management-bridge-0.0/${wired.test.directory}</source>

								<source>../portfolio-inline-issue-create-bridge/portfolio-inline-issue-create-bridge-api/${wired.test.directory}</source>

								<source>../../common/common-plugin/${wired.test.directory}</source>
								<source>../../common/common-environment-jira/${wired.test.directory}</source>
								<source>../../common/common-portfolio-1-bridge/common-portfolio-1-bridge-api/${wired.test.directory}</source>
								<source>../../common/common-portfolio-1-bridge/common-portfolio-1-bridge-0.0/${wired.test.directory}</source>

								<source>../../../portfolio-jira-bridge/portfolio-jira-bridge-api/${wired.test.directory}</source>
								<source>../../../portfolio-jira-bridge/portfolio-jira-bridge-impl/${wired.test.directory}</source>

								<source>../../../portfolio-agile-api/portfolio-agile-api-api/${wired.test.directory}</source>
								<source>../../../portfolio-agile-api/portfolio-agile-api-impl/${wired.test.directory}</source>
								<source>../../../portfolio-agile-api/portfolio-agile-api-8.6/${wired.test.directory}</source>
								<source>../../../portfolio-agile-api/portfolio-agile-api-jpo/${wired.test.directory}</source>
							</sources>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- amps plugin; for config see parent pom -->
			<plugin>
				<groupId>com.atlassian.maven.plugins</groupId>
				<artifactId>jira-maven-plugin</artifactId>

				<configuration>
					<jvmArgs>${arjJrebelJvmArgs}</jvmArgs>
					<skipBanningDependencies>true</skipBanningDependencies>

					<systemPropertyVariables>
						<plugin.resource.directories>${project.basedir}/src/main/resources,${project.basedir}/target/classes</plugin.resource.directories>

						<atlassian.darkfeature.com.atlassian.portfolio.availability.PersonAvailability>true</atlassian.darkfeature.com.atlassian.portfolio.availability.PersonAvailability>
						<atlassian.darkfeature.com.atlassian.portfolio.limits.LoadingLimitsConfigurability>true</atlassian.darkfeature.com.atlassian.portfolio.limits.LoadingLimitsConfigurability>
						<atlassian.darkfeature.com.atlassian.portfolio.reporting.ReportingView>true</atlassian.darkfeature.com.atlassian.portfolio.reporting.ReportingView>
						<atlassian.darkfeature.com.atlassian.portfolio.reporting.Sharing>true</atlassian.darkfeature.com.atlassian.portfolio.reporting.Sharing>
						<atlassian.darkfeature.com.atlassian.portfolio.skills.StagesAndSkills>true</atlassian.darkfeature.com.atlassian.portfolio.skills.StagesAndSkills>
						<atlassian.darkfeature.com.atlassian.portfolio.dependencies.DependenciesManagement>true</atlassian.darkfeature.com.atlassian.portfolio.dependencies.DependenciesManagement>
						<atlassian.darkfeature.com.atlassian.portfolio.commit.IssueAssigneeCommit>true</atlassian.darkfeature.com.atlassian.portfolio.commit.IssueAssigneeCommit>
						<atlassian.darkfeature.com.atlassian.portfolio.sourceData.CustomFields>true</atlassian.darkfeature.com.atlassian.portfolio.sourceData.CustomFields>
						<atlassian.darkfeature.com.atlassian.portfolio.sprints.SprintManagement>true</atlassian.darkfeature.com.atlassian.portfolio.sprints.SprintManagement>
						<atlassian.darkfeature.com.atlassian.portfolio.plan.ExtendedAdministration>true</atlassian.darkfeature.com.atlassian.portfolio.plan.ExtendedAdministration>
						<atlassian.darkfeature.com.atlassian.portfolio.baselineStartAndEndDates>true</atlassian.darkfeature.com.atlassian.portfolio.baselineStartAndEndDates>
						<atlassian.darkfeature.com.atlassian.portfolio.dueDate>true</atlassian.darkfeature.com.atlassian.portfolio.dueDate>
						<atlassian.darkfeature.com.atlassian.portfolio.planTimezone>true</atlassian.darkfeature.com.atlassian.portfolio.planTimezone>
						<atlassian.darkfeature.com.atlassian.portfolio.multiScenario>true</atlassian.darkfeature.com.atlassian.portfolio.multiScenario>
						<atlassian.darkfeature.com.atlassian.portfolio.schedulingInformation>true</atlassian.darkfeature.com.atlassian.portfolio.schedulingInformation>
						<atlassian.darkfeature.com.atlassian.portfolio.programView>true</atlassian.darkfeature.com.atlassian.portfolio.programView>
						<atlassian.darkfeature.com.atlassian.portfolio.showPlanSetupStepProgress>true</atlassian.darkfeature.com.atlassian.portfolio.showPlanSetupStepProgress>
						<atlassian.darkfeature.com.atlassian.portfolio.lazyTable>true</atlassian.darkfeature.com.atlassian.portfolio.lazyTable>
						<atlassian.darkfeature.com.atlassian.portfolio.sprints.parallelSprintsHandling>false</atlassian.darkfeature.com.atlassian.portfolio.sprints.parallelSprintsHandling>
						<atlassian.darkfeature.com.atlassian.portfolio.scheduling.customSchedulingDates>true</atlassian.darkfeature.com.atlassian.portfolio.scheduling.customSchedulingDates>
						<atlassian.darkfeature.com.atlassian.portfolio.simpleplans.warningCenter>false</atlassian.darkfeature.com.atlassian.portfolio.simpleplans.warningCenter>
					</systemPropertyVariables>

					<instructions>
						<!--
							NOTE: this MUST, MUST, MUST be the plugin ID due to a bug/fug somewhere down the
							road through manifest generation (the group/artifact id is used as a default
							symbolic bundle name, but if and only if 'instructions' are passed, otherwise
							the plugin id is used) and active objects (which uses the symbolic bundle name
							rather than the plugin id to generate prefixes.
						-->
						<Bundle-SymbolicName>com.atlassian.jpo</Bundle-SymbolicName>
						<DynamicImport-Package>
							${agile.bridge.dynamic.imports}
							${inline.issue.create.bridge.dynamic.imports}

							com.atlassian.rm.teams.api.ability;resolution:=optional,
							com.atlassian.rm.teams.api.base;resolution:=optional,
							com.atlassian.rm.teams.api.common;resolution:=optional,
							com.atlassian.rm.teams.api.permissions;resolution:=optional,
							com.atlassian.rm.teams.api.person;resolution:=optional,
							com.atlassian.rm.teams.api.resource;resolution:=optional,
							com.atlassian.rm.teams.api.skill;resolution:=optional,
							com.atlassian.rm.teams.api.team;resolution:=optional,

							com.radiantminds.roadmap.api;resolution:=optional,
						</DynamicImport-Package>

						<Import-Package>
							com.atlassian.greenhopper.service.rank,
							com.atlassian.jira.issue.customfields.vdi;resolution:=optional,
							javax.inject,
							*;resolution:=optional
						</Import-Package>

						<Export-Package>
							com.atlassian.rm.common.core.partial.*,
							com.atlassian.rm.common.publicapi.*,
							com.atlassian.rm.portfolio.publicapi.*,
							com.atlassian.rm.teams.publicapi.*,
							com.atlassian.rm.jpo.api.plans.*,
							com.atlassian.rm.jpo.api.permissions.*,
							com.atlassian.rm.jpo.api.planskill.*,
							com.atlassian.rm.jpo.api.planteam.*,
							com.atlassian.rm.jpo.api.common.*,
                            com.atlassian.jpo.obr.install,
							!*
						</Export-Package>

					</instructions>

					<testInstructions>
						<Import-Package>
							com.atlassian.greenhopper.service.rank;resolution:=mandatory,
							*
						</Import-Package>
						<Export-Package>
							com.atlassian.rm.na.*,
							!*
						</Export-Package>
					</testInstructions>

					<pluginArtifacts combine.children="append">
						<pluginArtifact>
							<groupId>com.atlassian</groupId>
							<artifactId>team-management-plugin</artifactId>
							<version>${project.version}</version>
						</pluginArtifact>

						<pluginArtifact>
							<groupId>com.atlassian</groupId>
							<artifactId>jira-portfolio</artifactId>
							<version>${project.version}</version>
						</pluginArtifact>
					</pluginArtifacts>
				</configuration>
			</plugin>

			<!-- spring scanner; for config see parent pom -->
			<plugin>
				<groupId>com.atlassian.plugin</groupId>
				<artifactId>atlassian-spring-scanner-maven-plugin</artifactId>
			</plugin>

			<!-- for config of surefire see parent pom -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>jrebel</id>
			<activation>
				<property>
					<name>jrebel</name>
				</property>
			</activation>
			<properties>
				<arjJrebelJvmArgs>-agentpath:${env.JREBEL_HOME}/lib/libjrebel64.dylib </arjJrebelJvmArgs>
			</properties>
		</profile>
		<profile>
			<id>hot-reload-frontend</id>

			<activation>
				<property>
					<name>hotReloadFrontend</name>
				</property>
			</activation>

			<properties>
				<webpack.views.config>webpack-conf/dev/webpack.views.js</webpack.views.config>
			</properties>
		</profile>

		<profile>
			<id>client-build</id>
			<activation>
				<property>
					<name>!skipClient</name>
				</property>
			</activation>

			<dependencies>
				<dependency>
					<groupId>com.atlassian.rm</groupId>
					<artifactId>common-frontend-configuration</artifactId>
					<version>${project.version}</version>
					<type>pom</type>
				</dependency>

				<dependency>
					<groupId>com.atlassian.rm</groupId>
					<artifactId>common-client</artifactId>
					<type>pom</type>
				</dependency>

				<dependency>
					<groupId>com.atlassian.rm</groupId>
					<artifactId>portfolio-client</artifactId>
					<version>${project.version}</version>
					<type>pom</type>
				</dependency>

				<dependency>
					<groupId>com.atlassian.rm</groupId>
					<artifactId>portfolio-frontend</artifactId>
					<version>${project.version}</version>
					<type>pom</type>
				</dependency>
			</dependencies>

			<build>
				<plugins>
					<plugin>
						<artifactId>maven-clean-plugin</artifactId>
						<configuration>
							<filesets combine.children="append">
								<fileset>
									<directory>src/main/resources</directory>
									<includes>
										<include>analytics/whitelist.json</include>
									</includes>
								</fileset>
							</filesets>
						</configuration>
					</plugin>

					<plugin>
						<groupId>com.github.eirslett</groupId>
						<artifactId>frontend-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>yarn install</id>
								<goals>
									<goal>yarn</goal>
								</goals>
								<configuration>
									<arguments>install --frozen-lockfile --mutex network --no-progress</arguments>
								</configuration>
								<phase>initialize</phase>
								<inherited>false</inherited>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>exec-maven-plugin</artifactId>
						<executions>
							<!-- generate whitelist.json file -->
							<execution>
								<id>generate-whitelist</id>
								<phase>generate-resources</phase>
								<goals>
									<goal>exec</goal>
								</goals>

								<configuration>
									<executable>${node.executable}</executable>

									<arguments>
										<argument>${path.to.common.plugin}/utils/generate-whitelist.js</argument>
										<argument>${basedir}/src/main/resources/analytics/whitelist.js</argument>
										<argument>${basedir}/src/main/resources/analytics/whitelist.json</argument>
									</arguments>
								</configuration>
							</execution>

							<execution>
								<id>webpack-build-scripts</id>
								<phase>generate-resources</phase>
								<goals>
									<goal>exec</goal>
								</goals>

								<configuration>
									<executable>${node.executable}</executable>

									<arguments>
										<argument>${basedir}/${node.modules.bin}/${webpack.executable}</argument>
										<argument>-p</argument>
										<argument>--config</argument>
										<argument>${webpack.scripts.config}</argument>
									</arguments>
								</configuration>
							</execution>

							<execution>
								<id>webpack-build-styles</id>
								<phase>generate-resources</phase>
								<goals>
									<goal>exec</goal>
								</goals>

								<configuration>
									<executable>${node.executable}</executable>

									<arguments>
										<argument>${basedir}/${node.modules.bin}/${webpack.executable}</argument>
										<argument>-p</argument>
										<argument>--config</argument>
										<argument>${webpack.styles.config}</argument>
									</arguments>
								</configuration>
							</execution>

							<execution>
								<id>webpack-build-views</id>
								<phase>generate-resources</phase>
								<goals>
									<goal>exec</goal>
								</goals>

								<configuration>
									<executable>${node.executable}</executable>

									<arguments>
										<argument>${basedir}/${node.modules.bin}/${webpack.executable}</argument>
										<argument>-p</argument>
										<argument>--config</argument>
										<argument>${webpack.views.config}</argument>
									</arguments>
								</configuration>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<artifactId>maven-resources-plugin</artifactId>
						<executions>
							<execution>
								<id>copy-common-fonts</id>
								<phase>process-resources</phase>

								<goals>
									<goal>copy-resources</goal>
								</goals>

								<configuration>
									<outputDirectory>${basedir}/target/classes/jpo2/fonts</outputDirectory>

									<resources>
										<resource>
											<directory>${path.to.common.client}/src/main/resources/fonts</directory>
										</resource>
									</resources>
								</configuration>
							</execution>

							<execution>
								<id>copy-common-images</id>
								<phase>process-resources</phase>

								<goals>
									<goal>copy-resources</goal>
								</goals>

								<configuration>
									<outputDirectory>${basedir}/target/classes/jpo2/images-common</outputDirectory>

									<resources>
										<resource>
											<directory>${path.to.common.client}/src/main/resources/images</directory>
										</resource>
									</resources>
								</configuration>
							</execution>

							<execution>
								<id>copy-common-scripts</id>
								<phase>process-resources</phase>

								<goals>
									<goal>copy-resources</goal>
								</goals>

								<configuration>
									<outputDirectory>${basedir}/target/classes/jpo2/scripts</outputDirectory>

									<resources>
										<resource>
											<directory>${path.to.common.client}/target/classes/scripts</directory>
											<includes>
												<include>common_vendor.dll.js</include>
												<include>common_client.dll.js</include>
											</includes>
										</resource>
									</resources>
								</configuration>
							</execution>

							<execution>
								<id>copy-team-management-client-common-scripts</id>
								<phase>process-resources</phase>

								<goals>
									<goal>copy-resources</goal>
								</goals>

								<configuration>
									<outputDirectory>${basedir}/target/classes/jpo2/scripts</outputDirectory>

									<resources>
										<resource>
											<directory>${path.to.team-management.client-common}/target/classes/scripts</directory>
											<includes>
												<include>team_management_client_common.dll.js</include>
											</includes>
										</resource>
									</resources>
								</configuration>
							</execution>

							<execution>
								<id>copy-common-styles-lib</id>
								<phase>process-resources</phase>

								<goals>
									<goal>copy-resources</goal>
								</goals>

								<configuration>
									<outputDirectory>${basedir}/target/classes/jpo2/styles-lib-common</outputDirectory>

									<resources>
										<resource>
											<directory>${path.to.common.client}/src/main/resources/styles-lib</directory>
										</resource>
									</resources>
								</configuration>
							</execution>

							<execution>
								<id>copy-common-plugin-styles-lib</id>
								<phase>process-resources</phase>

								<goals>
									<goal>copy-resources</goal>
								</goals>

								<configuration>
									<outputDirectory>${basedir}/target/classes/jpo2/styles-plugin-common</outputDirectory>

									<resources>
										<resource>
											<directory>${path.to.common.plugin}/target/classes/styles</directory>
										</resource>
									</resources>
								</configuration>
							</execution>

							<execution>
								<id>copy-common-plugin-i18n</id>
								<phase>process-resources</phase>

								<goals>
									<goal>copy-resources</goal>
								</goals>

								<configuration>
									<outputDirectory>${basedir}/target/classes/i18n-common</outputDirectory>

									<resources>
										<resource>
											<directory>${path.to.common.plugin}/src/main/resources/i18n</directory>
										</resource>
									</resources>
								</configuration>
							</execution>

							<execution>
								<id>copy-client-images</id>
								<phase>process-resources</phase>

								<goals>
									<goal>copy-resources</goal>
								</goals>

								<configuration>
									<outputDirectory>${basedir}/target/classes/jpo2/images</outputDirectory>

									<resources>
										<resource>
											<directory>${path.to.portfolio.client}/src/main/resources/images</directory>
										</resource>
									</resources>
								</configuration>
							</execution>

							<execution>
								<id>copy-client-scripts</id>
								<phase>process-resources</phase>

								<goals>
									<goal>copy-resources</goal>
								</goals>

								<configuration>
									<outputDirectory>${basedir}/target/classes/jpo2/scripts</outputDirectory>

									<resources>
										<resource>
											<directory>${path.to.portfolio.client}/target/classes/scripts</directory>
										</resource>
									</resources>
								</configuration>
							</execution>

							<execution>
								<id>copy-client-styles</id>
								<phase>process-resources</phase>

								<goals>
									<goal>copy-resources</goal>
								</goals>

								<configuration>
									<outputDirectory>${basedir}/target/classes/jpo2/styles</outputDirectory>

									<resources>
										<resource>
											<directory>${path.to.portfolio.client}/target/classes/styles</directory>
										</resource>
									</resources>
								</configuration>
							</execution>

							<execution>
								<id>copy-team-management-client-common-i18n</id>
								<phase>process-resources</phase>

								<goals>
									<goal>copy-resources</goal>
								</goals>

								<configuration>
									<outputDirectory>${basedir}/target/classes/i18n-team-management-common</outputDirectory>

									<resources>
										<resource>
											<directory>${path.to.team-management.client-common}/src/main/resources/i18n</directory>
										</resource>
									</resources>
								</configuration>
							</execution>

							<execution>
								<id>copy-frontend-dist</id>
								<phase>process-resources</phase>

								<goals>
									<goal>copy-resources</goal>
								</goals>

								<configuration>
									<outputDirectory>${basedir}/target/classes/pfe</outputDirectory>

									<resources>
										<resource>
											<directory>${path.to.portfolio.frontend}/packages/portfolio/dist</directory>
										</resource>
									</resources>
								</configuration>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>com.atlassian.maven.plugins</groupId>
						<artifactId>jira-maven-plugin</artifactId>
						<version>${amps.version}</version>
						<executions>
							<execution>
								<inherited>false</inherited>
								<id>copy-fe-module-manifests</id>
								<phase>compile</phase>
								<goals>
									<goal>copy-fe-module-manifests</goal>
								</goals>
								<configuration>
									<includedFeModuleManifests>
										<includedFeModuleManifest>${project.basedir}/../../common/common-frontend-configuration/package.json</includedFeModuleManifest>
										<includedFeModuleManifest>${project.basedir}/../../common/common-frontend-configuration/yarn.lock</includedFeModuleManifest>
										<includedFeModuleManifest>${project.basedir}/../../common/common-plugin/package.json</includedFeModuleManifest>
										<includedFeModuleManifest>${project.basedir}/../../common/common-plugin/yarn.lock</includedFeModuleManifest>
										<includedFeModuleManifest>${project.basedir}/../../common/common-dev-server/package.json</includedFeModuleManifest>
										<includedFeModuleManifest>${project.basedir}/../../common/common-dev-server/yarn.lock</includedFeModuleManifest>
										<includedFeModuleManifest>${project.basedir}/../../common/common-client/package.json</includedFeModuleManifest>
										<includedFeModuleManifest>${project.basedir}/../../common/common-client/yarn.lock</includedFeModuleManifest>
										<includedFeModuleManifest>${project.basedir}/../../portfolio/portfolio-client/package.json</includedFeModuleManifest>
										<includedFeModuleManifest>${project.basedir}/../../portfolio/portfolio-client/yarn.lock</includedFeModuleManifest>
										<includedFeModuleManifest>${project.basedir}/../../portfolio/portfolio-plugin/package.json</includedFeModuleManifest>
										<includedFeModuleManifest>${project.basedir}/../../portfolio/portfolio-plugin/yarn.lock</includedFeModuleManifest>
										<includedFeModuleManifest>${project.basedir}/../../portfolio-2-unmanaged-manifest/package.json</includedFeModuleManifest>
										<includedFeModuleManifest>${project.basedir}/../../portfolio-2-unmanaged-manifest/yarn.lock</includedFeModuleManifest>
									</includedFeModuleManifests>
								</configuration>
							</execution>
									<execution>
										<inherited>false</inherited>
										<id>js-enforcement</id>
										<goals>
											<goal>verify-fe-manifest-associations</goal>
										</goals>
										<configuration>
											<verifyFeManifestAssociationsInputEntrypoint>
												${project.build.directory}/${project.build.finalName}.jar
											</verifyFeManifestAssociationsInputEntrypoint>
											<verifyFeManifestAssociationsFailOnUndeclaredFiles>false</verifyFeManifestAssociationsFailOnUndeclaredFiles>
											<verifyFeManifestAssociationsFailOnExtraDeclarations>false</verifyFeManifestAssociationsFailOnExtraDeclarations>
										</configuration>
										<phase>verify</phase>
									</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<profile>
			<id>clean-node-modules</id>
			<activation>
				<property>
					<name>cleanNodeModules</name>
				</property>
			</activation>

			<build>
				<plugins>
					<plugin>
						<artifactId>maven-clean-plugin</artifactId>

						<configuration>
							<filesets>
								<fileset>
									<directory>src/main/resources</directory>
									<includes>
										<include>analytics/whitelist.json</include>
										<include>views/**/*.vm</include>
									</includes>
								</fileset>
								<fileset>
									<directory>${basedir}</directory>
									<includes>
										<include>node_modules/</include>
									</includes>
								</fileset>
							</filesets>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

</project>
