mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-06 21:00:22 +00:00
459 lines
21 KiB
XML
459 lines
21 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
|
|
Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
|
|
-->
|
|
<project name="suite-jnlp" basedir=".">
|
|
|
|
<!-- if jnlp.codebase is provided make both the app and the platform relative to it -->
|
|
<condition property="jnlp.codebase.app" value="${jnlp.codebase}app/" >
|
|
<isset property="jnlp.codebase" />
|
|
</condition>
|
|
<!-- if not specified, assign all codebases to value suitable for jnlp-servlet.jar -->
|
|
<property name="jnlp.codebase" value="$$$$codebase" />
|
|
<property name="jnlp.codebase.app" value="$$$$codebase" />
|
|
|
|
<target name="-check-for-master.jnlp">
|
|
<available file="master.jnlp" property="master.jnlp.exists"/>
|
|
</target>
|
|
<target name="jnlp-init-generate-master" depends="-check-for-master.jnlp" unless="master.jnlp.exists">
|
|
<echo file="master.jnlp"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc//DTD JNLP Descriptor 6.0//EN" "http://java.sun.com/dtd/JNLP-6.0.dtd">
|
|
<jnlp spec="1.0+" codebase="${jnlp.codebase}" href="master.jnlp">
|
|
<information>
|
|
<title>$${app.title}</title>
|
|
<vendor>$${app.title} vendor</vendor>
|
|
<description>$${app.name} application</description>
|
|
<icon href="$${app.icon}"/>
|
|
</information>
|
|
<security><all-permissions/></security>
|
|
<resources>
|
|
<!-- The following property is needed when running with unsigned jars: -->
|
|
<property name="netbeans.jnlp.fixPolicy" value="$${netbeans.jnlp.fixPolicy}"/>
|
|
<extension name='branding' href='branding.jnlp' />
|
|
<!-- The following line will be replaced with an automatically generated list of resources: -->
|
|
<!--$${jnlp.resources}-->
|
|
</resources>
|
|
<resources os="Mac OS X">
|
|
<property name="jnlp.netbeans.user" value="$${user.home}/Library/Application Support/$${app.name}"/>
|
|
</resources>
|
|
<application-desc>
|
|
<argument>--branding</argument>
|
|
<argument>$${branding.token}</argument>
|
|
</application-desc>
|
|
</jnlp>
|
|
]]></echo>
|
|
<echo file="branding.jnlp"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE jnlp PUBLIC "-//Sun Microsystems, Inc//DTD JNLP Descriptor 6.0//EN" "http://java.sun.com/dtd/JNLP-6.0.dtd">
|
|
<jnlp spec="1.0+" codebase="${jnlp.codebase}">
|
|
<information>
|
|
<title>$${app.title}</title>
|
|
<vendor>$${app.title} vendor</vendor>
|
|
<description>$${app.name} application</description>
|
|
<icon href="$${app.icon}"/>
|
|
</information>
|
|
$${jnlp.permissions}
|
|
<resources>
|
|
$${jnlp.branding.jars}
|
|
</resources>
|
|
<component-desc/>
|
|
</jnlp>
|
|
]]></echo>
|
|
</target>
|
|
|
|
<target name="jnlp-init" depends="jnlp-init-generate-master">
|
|
<fail unless="app.name">Must have set at least an application name ('app.name')</fail>
|
|
|
|
<property name="jnlp.dest.dir" location="${suite.build.dir}/jnlp"/>
|
|
<property name="jnlp.master.dir" location="${suite.build.dir}/tmp/master-jnlp"/>
|
|
<mkdir dir="${jnlp.master.dir}"/>
|
|
|
|
<property name="dist.dir" location="dist"/>
|
|
<property name="disabled.modules" value=""/>
|
|
<property name="enabled.clusters" value=""/>
|
|
<property name="disabled.clusters" value=""/>
|
|
|
|
<pathfileset id="jnlp.included.modules" >
|
|
<path refid="cluster.path.id"/>
|
|
<and>
|
|
<or>
|
|
<filename name="modules/**/*.jar"/>
|
|
<filename name="lib/**/*.jar"/>
|
|
<filename name="core/**/*.jar"/>
|
|
</or>
|
|
<not>
|
|
<filename name="**/update/**/*.jar"/>
|
|
</not>
|
|
<custom classpath="${harness.dir}/tasks.jar" classname="org.netbeans.nbbuild.ModuleSelector">
|
|
<param name="excludeModules" value="${disabled.modules}"/>
|
|
<param name="includeClusters" value="${enabled.clusters}"/>
|
|
<param name="excludeClusters" value="${disabled.clusters}"/>
|
|
</custom>
|
|
</and>
|
|
</pathfileset>
|
|
<property name="jnlp.sign.jars" value="true"/>
|
|
<property name="jnlp.signjar.keystore" location="${suite.build.dir}/default.keystore"/>
|
|
<property name="jnlp.signjar.alias" value="jnlp"/>
|
|
<property name="jnlp.signjar.password" value="netbeans"/>
|
|
<available property="jnlp.signjar.keystore.exists" file="${jnlp.signjar.keystore}"/>
|
|
<condition property="jnlp.included.locales.impl" value="${jnlp.included.locales}" else="*">
|
|
<isset property="jnlp.included.locales"/>
|
|
</condition>
|
|
</target>
|
|
|
|
<target name="jnlp-generate-keystore" depends="jnlp-init" unless="jnlp.signjar.keystore.exists">
|
|
<property name="jnlp.signjar.vendor" value="CN=${user.name}"/>
|
|
|
|
<mkdir dir="${jnlp.signjar.keystore}/../"/>
|
|
<echo message="Going to create default keystore in ${jnlp.signjar.keystore}"/>
|
|
<genkey validity="365"
|
|
alias="${jnlp.signjar.alias}"
|
|
keystore="${jnlp.signjar.keystore}"
|
|
storepass="${jnlp.signjar.password}"
|
|
dname="${jnlp.signjar.vendor}"
|
|
/>
|
|
</target>
|
|
|
|
<target name="jnlp-generate-platform" depends="jnlp-generate-platform-repository,jnlp-generate-platform-master"/>
|
|
|
|
<target name="jnlp-generate-platform-repository" depends="jnlp-generate-keystore,jnlp-init,set-all-permissions,set-empty-permissions" unless="jnlp.platform.codebase">
|
|
<condition property="jnlp.platform.codebase.own" value="${jnlp.codebase}netbeans/" >
|
|
<not>
|
|
<equals arg1="${jnlp.codebase}" arg2="$$$$codebase" />
|
|
</not>
|
|
</condition>
|
|
<property name="jnlp.platform.codebase.own" value="$$$$codebase"/>
|
|
<property name="jnlp.platform.codebase" value="netbeans/"/>
|
|
|
|
<mkdir dir="${jnlp.dest.dir}/netbeans"/>
|
|
|
|
<!-- See #70477 for why there is no verify=true here: -->
|
|
<makejnlp
|
|
appname="${app.name}"
|
|
includelocales="${jnlp.included.locales.impl}"
|
|
alias="${jnlp.signjar.alias}"
|
|
keystore="${jnlp.signjar.keystore}"
|
|
storepass="${jnlp.signjar.password}"
|
|
dir="${jnlp.dest.dir}/netbeans/"
|
|
codebase="${jnlp.platform.codebase.own}"
|
|
permissions="${jnlp.permissions}"
|
|
signjars="${jnlp.sign.jars}"
|
|
processjarversions="${jnlp.generate.versions}"
|
|
>
|
|
<resources refid="jnlp.included.modules"/>
|
|
</makejnlp>
|
|
</target>
|
|
|
|
<target name="set-all-permissions" depends="check-signjars" if="unsign-the-jars">
|
|
<property name="jnlp.permissions" value="<security/>"/>
|
|
</target>
|
|
<target name="set-empty-permissions" depends="check-signjars" unless="unsign-the-jars">
|
|
<property name="jnlp.permissions" value="<security><all-permissions/></security>"/>
|
|
</target>
|
|
|
|
<target name="check-signjars">
|
|
<condition property="unsign-the-jars">
|
|
<isfalse value="${jnlp.sign.jars}"/>
|
|
</condition>
|
|
</target>
|
|
|
|
<target name="jnlp-generate-platform-master" depends="jnlp-generate-platform-repository">
|
|
<makemasterjnlp
|
|
dir="${jnlp.master.dir}"
|
|
codebase="${jnlp.platform.codebase}"
|
|
>
|
|
<resources refid="jnlp.included.modules"/>
|
|
</makemasterjnlp>
|
|
</target>
|
|
|
|
<target name="build"
|
|
depends="build-jnlp-nowar"
|
|
description="Build JNLP files and signed JARs for all modules in the suite."
|
|
>
|
|
<available file="${nbjdk.home}/sample/jnlp/servlet/jnlp-servlet.jar" property="jnlp.servlet.jar"
|
|
value="${nbjdk.home}/sample/jnlp/servlet/jnlp-servlet.jar"
|
|
/>
|
|
<property name="jnlp.servlet.jar" location="${harness.dir}/jnlp/jnlp-servlet.jar"/>
|
|
<fail message="Cannot find -Djnlp.servlet.jar pointing to ${jnlp.servlet.jar}">
|
|
<condition>
|
|
<not>
|
|
<available file="${jnlp.servlet.jar}"/>
|
|
</not>
|
|
</condition>
|
|
</fail>
|
|
|
|
<echo file="${suite.build.dir}/tmp/web.xml"><![CDATA[
|
|
<web-app>
|
|
<servlet>
|
|
<servlet-name>JnlpDownloadServlet</servlet-name>
|
|
<servlet-class>jnlp.sample.servlet.JnlpDownloadServlet</servlet-class>
|
|
</servlet>
|
|
<servlet-mapping>
|
|
<servlet-name>JnlpDownloadServlet</servlet-name>
|
|
<url-pattern>*.jnlp</url-pattern>
|
|
</servlet-mapping>
|
|
</web-app>
|
|
]]></echo>
|
|
<mkdir dir="${dist.dir}"/>
|
|
<war basedir="${jnlp.dest.dir}" destfile="${dist.dir}/${app.name}.war" webxml="${suite.build.dir}/tmp/web.xml">
|
|
<zipfileset dir="${jnlp.servlet.jar}/.." prefix="WEB-INF/lib"/>
|
|
<zipfileset file="${jnlp.servlet.jar}" prefix="WEB-INF/lib"/>
|
|
</war>
|
|
</target>
|
|
|
|
<target name="build-jnlp-local" depends="build-jnlp-nowar">
|
|
<property name="build.jnlp.local.dir" location="${dist.dir}/jnlp/local"/>
|
|
<mkdir dir="${build.jnlp.local.dir}"/>
|
|
<mkdir dir="${build.jnlp.local.dir}/netbeans/"/>
|
|
<mkdir dir="${build.jnlp.local.dir}/app/"/>
|
|
|
|
<makeurl property="build.jnlp.local.url" file="${build.jnlp.local.dir}"/>
|
|
<copy todir="${build.jnlp.local.dir}">
|
|
<fileset dir="${suite.build.dir}/jnlp">
|
|
<include name="*.jnlp"/>
|
|
</fileset>
|
|
<filterchain>
|
|
<replacestring from="$$$$codebase" to="${build.jnlp.local.url}"/>
|
|
</filterchain>
|
|
</copy>
|
|
<jnlpupdatemanifeststartup appname="${app.name}"
|
|
alias="${jnlp.signjar.alias}"
|
|
keystore="${jnlp.signjar.keystore}"
|
|
storepass="${jnlp.signjar.password}"
|
|
jar="${harness.dir}/jnlp/jnlp-launcher.jar"
|
|
masterJnlp="${build.jnlp.local.dir}/master.jnlp"
|
|
destjar="${build.jnlp.local.dir}/startup.jar"/>
|
|
<mkdir dir="${suite.build.dir}/jnlp/netbeans"/> <!-- else fileset will croak -->
|
|
<copy todir="${build.jnlp.local.dir}/netbeans/">
|
|
<fileset dir="${suite.build.dir}/jnlp/netbeans">
|
|
<include name="**/*.jnlp"/>
|
|
</fileset>
|
|
<filterchain>
|
|
<replacestring from="$$$$codebase" to="${build.jnlp.local.url}netbeans/"/>
|
|
</filterchain>
|
|
</copy>
|
|
<copy todir="${build.jnlp.local.dir}/app/">
|
|
<fileset dir="${suite.build.dir}/jnlp/app">
|
|
<include name="**/*.jnlp"/>
|
|
</fileset>
|
|
<filterchain>
|
|
<replacestring from="$$$$codebase" to="${build.jnlp.local.url}app/"/>
|
|
</filterchain>
|
|
</copy>
|
|
<copy todir="${build.jnlp.local.dir}">
|
|
<fileset dir="${suite.build.dir}/jnlp">
|
|
<exclude name="**/*.jnlp"/>
|
|
</fileset>
|
|
</copy>
|
|
<verifyjnlp>
|
|
<fileset file="${build.jnlp.local.dir}/master.jnlp"/>
|
|
</verifyjnlp>
|
|
</target>
|
|
|
|
<target name="build-jnlp-nowar" depends="jnlp-init,jnlp-generate-keystore,jnlp-generate-platform">
|
|
<mkdir dir="${jnlp.dest.dir}/app"/>
|
|
<subant target="jnlp" buildpath="${modules.sorted}" inheritrefs="false" inheritall="false">
|
|
<property name="jnlp.dest.dir" value="${jnlp.dest.dir}/app"/>
|
|
<property name="jnlp.master.dir" value="${jnlp.master.dir}"/>
|
|
<property name="jnlp.master.codebase" value="app/"/>
|
|
<property name="jnlp.codebase" value="${jnlp.codebase.app}"/>
|
|
<property name="jnlp.signjar.alias" value="${jnlp.signjar.alias}"/>
|
|
<property name="jnlp.signjar.keystore" location="${jnlp.signjar.keystore}"/>
|
|
<property name="jnlp.signjar.password" value="${jnlp.signjar.password}"/>
|
|
<property name="jnlp.sign.jars" value="${jnlp.sign.jars}"/>
|
|
<property name="jnlp.permissions" value="${jnlp.permissions}"/>
|
|
</subant>
|
|
|
|
<antcall target="copy-branding"/>
|
|
|
|
<pathconvert pathsep="${line.separator}" property="jnlp.branding.jars">
|
|
<path>
|
|
<fileset dir="${jnlp.dest.dir}/branding">
|
|
<include name="*_${branding.token}.jar"/>
|
|
</fileset>
|
|
</path>
|
|
<mapper type="regexp" from="^.*[/\\]([^/\\]+\.jar)" to=' <jar href="branding/\1"/>'/>
|
|
</pathconvert>
|
|
|
|
<echo file="${jnlp.master.dir}/resources.xml"><![CDATA[
|
|
<java version="1.6+"/>
|
|
<jar href="startup.jar" main="true"/>
|
|
<property name="jnlp.netbeans.user" value="$${user.home}/.nbapp-${app.name}"/>
|
|
]]></echo>
|
|
<concat append="true" destfile="${jnlp.master.dir}/resources.xml">
|
|
<fileset dir="${jnlp.master.dir}">
|
|
<include name="*.ref"/>
|
|
</fileset>
|
|
</concat>
|
|
|
|
<loadfile property="jnlp.resources" srcfile="${jnlp.master.dir}/resources.xml"/>
|
|
|
|
<condition property="netbeans.jnlp.fixPolicy">
|
|
<isfalse value="${jnlp.sign.jars}"/>
|
|
</condition>
|
|
<!-- Anyone knows a better way to negate a property value? -->
|
|
<condition property="netbeans.jnlp.fixPolicy" value="false">
|
|
<istrue value="${jnlp.sign.jars}"/>
|
|
</condition>
|
|
|
|
<condition property="app.icon.safe" value="${app.icon}" else=".png">
|
|
<isset property="app.icon" />
|
|
</condition>
|
|
<pathconvert property="app.icon.ext">
|
|
<path path="${app.icon.safe}"/>
|
|
<mapper type="regexp" from="^(.*)\.(.*)$$" to="\2"/>
|
|
</pathconvert>
|
|
|
|
<copy file="${app.icon}" tofile="${jnlp.dest.dir}/master.${app.icon.ext}" failonerror="false"/>
|
|
<copy file="master.jnlp" tofile="${jnlp.dest.dir}/master.jnlp">
|
|
<filterchain>
|
|
<replacestring from="<!--$${jnlp.resources}-->" to="${jnlp.resources}"/>
|
|
<replacestring from="$${jnlp.resources}" to="${jnlp.resources}"/>
|
|
<replacestring from="$${app.name}" to="${app.name}"/>
|
|
<replacestring from="$${user.home}" to="${user.home}"/>
|
|
<replacestring from="$${app.title}" to="${app.title}"/>
|
|
<replacestring from="$${app.icon}" to="master.${app.icon.ext}"/>
|
|
<replacestring from="$${branding.token}" to="${branding.token}"/>
|
|
<replacestring from="$${netbeans.jnlp.fixPolicy}" to="${netbeans.jnlp.fixPolicy}"/>
|
|
</filterchain>
|
|
</copy>
|
|
<jnlpupdatemanifeststartup appname="${app.name}"
|
|
alias="${jnlp.signjar.alias}"
|
|
keystore="${jnlp.signjar.keystore}"
|
|
storepass="${jnlp.signjar.password}"
|
|
jar="${harness.dir}/jnlp/jnlp-launcher.jar"
|
|
masterJnlp="${jnlp.dest.dir}/master.jnlp"
|
|
destjar="${jnlp.dest.dir}/startup.jar"/>
|
|
<echo>Your JNLP file is generated at ${jnlp.dest.dir}/master.jnlp</echo>
|
|
<!-- The following line will not fail if the branding.jnlp
|
|
is not present, e.g. when the main file was generated using
|
|
harness from 5.x days. -->
|
|
<copy file="branding.jnlp" tofile="${jnlp.dest.dir}/branding.jnlp" failonerror="false">
|
|
<filterchain>
|
|
<replacestring from="$${jnlp.branding.jars}" to="${jnlp.branding.jars}"/>
|
|
<replacestring from="$${app.name}" to="${app.name}"/>
|
|
<replacestring from="$${app.title}" to="${app.title}"/>
|
|
<replacestring from="$${app.icon}" to="master.${app.icon.ext}"/>
|
|
<replacestring from="$${jnlp.permissions}" to="${jnlp.permissions}"/>
|
|
</filterchain>
|
|
</copy>
|
|
|
|
<taskdef name="verifyjnlp" classname="org.netbeans.nbbuild.VerifyJNLP" classpath="${harness.dir}/tasks.jar"/>
|
|
<verifyjnlp>
|
|
<fileset file="${jnlp.dest.dir}/master.jnlp"/>
|
|
</verifyjnlp>
|
|
</target>
|
|
|
|
<target name="sign-branding-jars" unless="unsign-the-jars" depends="copy-branding-jars">
|
|
<jnlpupdatemanifestbranding appname="${app.name}"
|
|
alias="${jnlp.signjar.alias}"
|
|
keystore="${jnlp.signjar.keystore}"
|
|
storepass="${jnlp.signjar.password}">
|
|
<fileset dir="${jnlp.dest.dir}/branding">
|
|
<include name="*_${branding.token}.jar"/>
|
|
</fileset>
|
|
</jnlpupdatemanifestbranding>
|
|
</target>
|
|
|
|
<target name="copy-branding" depends="copy-branding-jars, sign-branding-jars"/>
|
|
|
|
<target name="copy-branding-jars">
|
|
<mkdir dir="${jnlp.dest.dir}/branding"/>
|
|
<copy todir="${jnlp.dest.dir}/branding" flatten="true">
|
|
<fileset dir="${cluster}">
|
|
<include name="**/locale/*.jar"/>
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="run" depends="build-jnlp-local" description="Executes this suite as JNLP application">
|
|
<condition property="run.javaws" value="${nbjdk.home}/jre/bin/javaws">
|
|
<available file="${nbjdk.home}/jre/bin/javaws"/>
|
|
</condition>
|
|
<condition property="run.javaws" value="${nbjdk.home}/bin/javaws">
|
|
<available file="${nbjdk.home}/bin/javaws"/>
|
|
</condition>
|
|
<condition property="run.javaws" value="${nbjdk.home}\jre\bin\javaws.exe">
|
|
<available file="${nbjdk.home}\jre\bin\javaws.exe"/>
|
|
</condition>
|
|
<condition property="run.javaws" value="${nbjdk.home}\bin\javaws.exe">
|
|
<available file="${nbjdk.home}\bin\javaws.exe"/>
|
|
</condition>
|
|
<property name="run.javaws" value="javaws"/>
|
|
<property name="run.args" value=""/>
|
|
<exec executable="${run.javaws}">
|
|
<arg value="-wait"/>
|
|
<arg file="${build.jnlp.local.dir}/master.jnlp"/>
|
|
<env key="JAVAWS_VM_ARGS" value="${run.args}"/>
|
|
</exec>
|
|
</target>
|
|
|
|
<target name="debug" depends="build-jnlp-local" description="Executes this suite as JNLP application under debugger">
|
|
<fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail>
|
|
<nbjpdastart name="NetBeans" addressproperty="debug.port" transport="dt_socket">
|
|
<classpath>
|
|
<pathfileset>
|
|
<path refid="cluster.path.id"/>
|
|
<filename name="**/*.jar"/>
|
|
</pathfileset>
|
|
<fileset dir="${cluster}">
|
|
<include name="**/*.jar"/>
|
|
</fileset>
|
|
</classpath>
|
|
</nbjpdastart>
|
|
<property name="debug.pause" value="y"/>
|
|
<property name="debug.args" value="-agentlib:jdwp=transport=dt_socket,suspend=${debug.pause},server=n,address=${debug.port}"/>
|
|
<antcall target="run">
|
|
<param name="run.args" value="${debug.args}"/>
|
|
<reference refid="cluster.path.id"/>
|
|
</antcall>
|
|
</target>
|
|
|
|
<target name="-profile-check" if="netbeans.home">
|
|
<condition property="profiler.configured">
|
|
<or>
|
|
<contains string="${run.jvmargs.ide}" substring="-agentpath:" casesensitive="true"/>
|
|
<contains string="${run.jvmargs.ide}" substring="-javaagent:" casesensitive="true"/>
|
|
</or>
|
|
</condition>
|
|
</target>
|
|
|
|
<target name="profile" depends="-profile-check,build-jnlp-local" description="Executes this suite as JNLP application under profiler" if="profiler.configured" unless="profiler.info.jvmargs.agent">
|
|
<startprofiler/>
|
|
<antcall target="run"/>
|
|
</target>
|
|
|
|
<target name="-check-for-jnlp-userdir">
|
|
<property name="jnlp.userdir" location="${user.home}/.nbapp-${app.name}"/>
|
|
<condition property="have.jnlp.userdir">
|
|
<and>
|
|
<isset property="app.name"/>
|
|
<available file="${jnlp.userdir}" type="dir"/>
|
|
</and>
|
|
</condition>
|
|
</target>
|
|
<target name="-clean-jnlp-userdir" depends="-check-for-jnlp-userdir" if="have.jnlp.userdir">
|
|
<property name="jnlp.userdir.bak" location="${jnlp.userdir}.bak"/>
|
|
<delete dir="${jnlp.userdir.bak}" failonerror="false"/>
|
|
<move file="${jnlp.userdir}" tofile="${jnlp.userdir.bak}" failonerror="false"/>
|
|
</target>
|
|
<target name="clean" depends="-clean-jnlp-userdir" description="Make sure default JNLP user directory is removed so run-jnlp will not get old test settings."/> <!-- #64249 -->
|
|
|
|
</project>
|