<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>
	<parent>
		<groupId>org.eclipse.lemminx</groupId>
		<artifactId>lemminx-parent</artifactId>
		<version>0.31.1</version>
	</parent>
	<artifactId>org.eclipse.lemminx</artifactId>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
		<dev.build.timestamp>${maven.build.timestamp}</dev.build.timestamp>
		<cbi.jarsigner.skip>true</cbi.jarsigner.skip>
		<native.maven.plugin.version>0.9.23</native.maven.plugin.version>
		<graalvm.static />
	</properties>
	<build>
		<resources>
			<resource>
				<directory>src/main/resources/</directory>
				<filtering>true</filtering>
				<includes>
					<include>**/*.properties</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources/</directory>
				<filtering>false</filtering>
				<excludes>
					<exclude>**/*.properties</exclude>
				</excludes>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<version>3.4.0</version>
				<executions>
					<execution>
						<id>parse-version</id>
						<goals>
							<goal>parse-version</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>pl.project13.maven</groupId>
				<artifactId>git-commit-id-plugin</artifactId>
				<version>4.9.10</version>
				<executions>
					<execution>
						<id>get-the-git-infos</id>
						<goals>
							<goal>revision</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<dotGitDirectory>${project.basedir}/../.git</dotGitDirectory>
					<generateGitPropertiesFile>true</generateGitPropertiesFile>
					<includeOnlyProperties>
						<includeOnlyProperty>^git.commit.id.abbrev$</includeOnlyProperty>
						<includeOnlyProperty>^git.commit.message.short$</includeOnlyProperty>
						<includeOnlyProperty>^git.branch$</includeOnlyProperty>
						<includeOnlyProperty>^git.build.version$</includeOnlyProperty>
					</includeOnlyProperties>
					<gitDescribe>
						<skip>true</skip>
					</gitDescribe>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>test-jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.eclipse.cbi.maven.plugins</groupId>
				<artifactId>eclipse-jarsigner-plugin</artifactId>
				<version>1.3.2</version>
				<executions>
					<execution>
						<id>sign</id>
						<phase>package</phase>
						<goals>
							<goal>sign</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<version>3.6.0</version>
				<configuration>
					<descriptors combine.children="append">
						<descriptor>src/assembly/distribution.xml</descriptor>
					</descriptors>
					<finalName>${project.artifactId}</finalName>
					<archive>
						<manifest>
							<mainClass>org.eclipse.lemminx.XMLServerLauncher</mainClass>
						</manifest>
						<manifestEntries>
							<Bundle-ManifestVersion>2</Bundle-ManifestVersion>
							<Bundle-SymbolicName>org.eclipse.lemminx.uber-jar</Bundle-SymbolicName>
							<Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy>
							<Bundle-Version>${parsedVersion.osgiVersion}</Bundle-Version>
							<Bundle-Vendor>Eclipse.org</Bundle-Vendor>
							<Bundle-Name>lemminx uber jar bundle</Bundle-Name>
							<Service-Component>OSGI-INF/*.xml</Service-Component>
						</manifestEntries>
					</archive>
				</configuration>
				<executions>
					<execution>
						<id>make-assembly</id> <!-- this is used for inheritance merges -->
						<phase>package</phase> <!-- bind to the packaging phase -->
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
	<profiles>
		<profile>
			<id>native</id>
			<activation>
				<property>
					<name>native</name>
					<value>true</value>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>kr.motd.maven</groupId>
						<artifactId>os-maven-plugin</artifactId>
						<version>1.7.1</version>
						<executions>
							<execution>
								<phase>initialize</phase>
								<goals>
									<goal>detect</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.graalvm.buildtools</groupId>
						<artifactId>native-maven-plugin</artifactId>
						<version>${native.maven.plugin.version}</version>
						<executions>
							<execution>
								<goals>
									<goal>build</goal>
								</goals>
								<phase>package</phase>
							</execution>
						</executions>
						<configuration>
							<skip>false</skip>
							<imageName>lemminx-${os.detected.classifier}-${project.version}</imageName>
							<buildArgs>
								--no-fallback
								-march=compatibility
								--enable-http
								--enable-https
								${graalvm.static}
							</buildArgs>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>generate-p2</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.eclipse.tycho.extras</groupId>
						<artifactId>tycho-eclipserun-plugin</artifactId>
					</plugin>
					<plugin>
						<artifactId>maven-assembly-plugin</artifactId>
						<configuration>
							<descriptors combine.children="append">
								<descriptor>src/assembly/p2repo.xml</descriptor>
							</descriptors>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
	<dependencies>
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
		</dependency>
		<dependency>
			<groupId>org.eclipse.lsp4j</groupId>
			<artifactId>org.eclipse.lsp4j</artifactId>
		</dependency>
		<dependency>
			<groupId>org.eclipse.lsp4j</groupId>
			<artifactId>org.eclipse.lsp4j.jsonrpc</artifactId>
		</dependency>
		<dependency>
			<groupId>xerces</groupId>
			<artifactId>xercesImpl</artifactId>
			<version>2.12.2</version>
		</dependency>
		<dependency>
			<groupId>xml-apis</groupId>
			<artifactId>xml-apis</artifactId>
			<version>1.4.01</version>
		</dependency>
		<dependency>
			<groupId>com.kotcrab.remark</groupId>
			<artifactId>remark</artifactId>
			<version>1.0.0</version>
		</dependency>
		<dependency>
			<groupId>org.jsoup</groupId>
			<artifactId>jsoup</artifactId>
			<version>1.14.2</version>
		</dependency>
		<dependency>
			<groupId>xml-resolver</groupId>
			<artifactId>xml-resolver</artifactId>
			<version>1.2</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.relaxng</groupId>
			<artifactId>jing</artifactId>
			<version>20220510</version>
			<exclusions>
				<exclusion>
					<groupId>net.sf.saxon</groupId>
					<artifactId>Saxon-HE</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xerces</groupId>
					<artifactId>xercesImpl</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-params</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.eclipse.jetty</groupId>
			<artifactId>jetty-server</artifactId>
			<!-- Need to stick to 11.x as long as build is running with Java 11. It's EOL but only used in tests -->
			<version>11.0.24</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>
