<commit_before><?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2016 The Netty Project
  ~
  ~ The Netty Project 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 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>io.netty</groupId>
    <artifactId>netty-tcnative-parent</artifactId>
    <version>1.1.33.Fork17-SNAPSHOT</version>
  </parent>
  <artifactId>netty-tcnative-boringssl-static</artifactId>
  <packaging>jar</packaging>

  <name>Netty/TomcatNative [BoringSSL - Static]</name>
  <description>
    A Mavenized fork of Tomcat Native which incorporates various patches. This artifact is statically linked
    to BoringSSL and Apache APR.
  </description>

  <profiles>
    <!-- Default profile that builds a platform-specific jar -->
    <profile>
      <id>boringssl-static-default</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>

      <properties>
        <boringsslCheckoutDir>${project.build.directory}/boringssl-${boringsslBranch}</boringsslCheckoutDir>
        <boringsslBuildDir>${boringsslCheckoutDir}/build</boringsslBuildDir>
        <linkStatic>true</linkStatic>
        <msvcSslIncludeDirs>${boringsslCheckoutDir}/include</msvcSslIncludeDirs>
        <msvcSslLibDirs>${boringsslBuildDir}/ssl;${boringsslBuildDir}/crypto;${boringsslBuildDir}/decrepit</msvcSslLibDirs>
        <msvcSslLibs>ssl.lib;crypto.lib;decrepit.lib</msvcSslLibs>
      </properties>

      <build>
        <plugins>
          <!-- Download the BoringSSL source -->
          <plugin>
            <artifactId>maven-scm-plugin</artifactId>
            <executions>
              <execution>
                <id>get-boringssl</id>
                <phase>generate-sources</phase>
                <goals>
                  <goal>checkout</goal>
                </goals>
                <configuration>
                  <checkoutDirectory>${boringsslCheckoutDir}</checkoutDirectory>
                  <connectionType>developerConnection</connectionType>
                  <developerConnectionUrl>scm:git:https://boringssl.googlesource.com/boringssl</developerConnectionUrl>
                  <scmVersion>${boringsslBranch}</scmVersion>
                  <scmVersionType>branch</scmVersionType>
                  <skipCheckoutIfExists>true</skipCheckoutIfExists>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <!-- Determine the commit ID of the source code. -->
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <executions>
              <execution>
                <phase>generate-sources</phase>
                <goals>
                  <goal>create</goal>
                </goals>
                <configuration>
                  <scmDirectory>${boringsslCheckoutDir}</scmDirectory>
                  <buildNumberPropertyName>boringsslBuildNumber</buildNumberPropertyName>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <!-- Add the commit ID and branch to the manifest. -->
          <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <configuration>
              <instructions>
                <Apr-Version>${aprVersion}</Apr-Version>
                <BoringSSL-Revision>${boringsslBuildNumber}</BoringSSL-Revision>
                <BoringSSL-Branch>${boringsslBranch}</BoringSSL-Branch>
              </instructions>
            </configuration>
          </plugin>

          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>

              <!-- Only deploy to Maven Central if on centos (fedora). -->
              <execution>
                <id>skip-deploy</id>
                <phase>initialize</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <exportAntProperties>true</exportAntProperties>
                  <target>
                    <condition property="maven.deploy.skip" value="false" else="true">
                      <isset property="os.detected.release.like.fedora" />
                    </condition>
                  </target>
                </configuration>
              </execution>

              <!-- Build the BoringSSL static libs -->
              <execution>
                <id>build-boringssl</id>
                <phase>generate-sources</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <!-- Add the ant tasks from ant-contrib -->
                    <taskdef resource="net/sf/antcontrib/antcontrib.properties" />

                    <mkdir dir="${boringsslBuildDir}" />

                    <!-- Determine if we're on windows -->
                    <condition property="isWindows" else="false">
                      <os family="windows" />
                    </condition>

                    <if>
                      <equals arg1="${isWindows}" arg2="true" />
                      <then>
                        <!-- On Windows, build with /MT for static linking -->
                        <exec executable="cmake" failonerror="true" dir="${boringsslBuildDir}" resolveexecutable="true">
                          <arg value="-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE" />
                          <arg value="-DCMAKE_BUILD_TYPE=Release" />
                          <arg value="-DCMAKE_C_FLAGS_RELEASE=/MT" />
                          <arg value="-DCMAKE_CXX_FLAGS_RELEASE=/MT" />
                          <arg value="-GNinja" />
                          <arg value=".." />
                        </exec>
                      </then>
                      <else>
                        <!-- On *nix, add ASM flags to disable executable stack -->
                        <exec executable="cmake" failonerror="true" dir="${boringsslBuildDir}" resolveexecutable="true">
                          <arg value="-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE" />
                          <arg value="-DCMAKE_BUILD_TYPE=Release" />
                          <arg value="-DCMAKE_ASM_FLAGS=-Wa,--noexecstack" />
                          <arg value="-GNinja" />
                          <arg value=".." />
                        </exec>
                      </else>
                    </if>
                    <exec executable="ninja" failonerror="true" dir="${boringsslBuildDir}" resolveexecutable="true" />
                  </target>
                </configuration>
              </execution>

              <!-- Build the additional JAR that contains the native library. -->
              <execution>
                <id>native-jar</id>
                <phase>package</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <copy todir="${nativeJarWorkdir}">
                      <zipfileset src="${defaultJarFile}" />
                    </copy>
                    <copy todir="${nativeJarWorkdir}" includeEmptyDirs="false">
                      <zipfileset dir="${nativeLibOnlyDir}/META-INF/native" />
                      <regexpmapper handledirsep="yes" from="^(?:[^/]+/)*([^/]+)$" to="META-INF/native/\1" />
                    </copy><commit_msg>[#129] Ensure we strip static linked library on linux<commit_after><?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2016 The Netty Project
  ~
  ~ The Netty Project 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 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>io.netty</groupId>
    <artifactId>netty-tcnative-parent</artifactId>
    <version>1.1.33.Fork17-SNAPSHOT</version>
  </parent>
  <artifactId>netty-tcnative-boringssl-static</artifactId>
  <packaging>jar</packaging>

  <name>Netty/TomcatNative [BoringSSL - Static]</name>
  <description>
    A Mavenized fork of Tomcat Native which incorporates various patches. This artifact is statically linked
    to BoringSSL and Apache APR.
  </description>

  <profiles>
    <!-- Default profile that builds a platform-specific jar -->
    <profile>
      <id>boringssl-static-default</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>

      <properties>
        <boringsslCheckoutDir>${project.build.directory}/boringssl-${boringsslBranch}</boringsslCheckoutDir>
        <boringsslBuildDir>${boringsslCheckoutDir}/build</boringsslBuildDir>
        <linkStatic>true</linkStatic>
        <msvcSslIncludeDirs>${boringsslCheckoutDir}/include</msvcSslIncludeDirs>
        <msvcSslLibDirs>${boringsslBuildDir}/ssl;${boringsslBuildDir}/crypto;${boringsslBuildDir}/decrepit</msvcSslLibDirs>
        <msvcSslLibs>ssl.lib;crypto.lib;decrepit.lib</msvcSslLibs>
      </properties>

      <build>
        <plugins>
          <!-- Download the BoringSSL source -->
          <plugin>
            <artifactId>maven-scm-plugin</artifactId>
            <executions>
              <execution>
                <id>get-boringssl</id>
                <phase>generate-sources</phase>
                <goals>
                  <goal>checkout</goal>
                </goals>
                <configuration>
                  <checkoutDirectory>${boringsslCheckoutDir}</checkoutDirectory>
                  <connectionType>developerConnection</connectionType>
                  <developerConnectionUrl>scm:git:https://boringssl.googlesource.com/boringssl</developerConnectionUrl>
                  <scmVersion>${boringsslBranch}</scmVersion>
                  <scmVersionType>branch</scmVersionType>
                  <skipCheckoutIfExists>true</skipCheckoutIfExists>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <!-- Determine the commit ID of the source code. -->
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <executions>
              <execution>
                <phase>generate-sources</phase>
                <goals>
                  <goal>create</goal>
                </goals>
                <configuration>
                  <scmDirectory>${boringsslCheckoutDir}</scmDirectory>
                  <buildNumberPropertyName>boringsslBuildNumber</buildNumberPropertyName>
                </configuration>
              </execution>
            </executions>
          </plugin>

          <!-- Add the commit ID and branch to the manifest. -->
          <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <configuration>
              <instructions>
                <Apr-Version>${aprVersion}</Apr-Version>
                <BoringSSL-Revision>${boringsslBuildNumber}</BoringSSL-Revision>
                <BoringSSL-Branch>${boringsslBranch}</BoringSSL-Branch>
              </instructions>
            </configuration>
          </plugin>

          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>

              <!-- Only deploy to Maven Central if on centos (fedora). -->
              <execution>
                <id>skip-deploy</id>
                <phase>initialize</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <exportAntProperties>true</exportAntProperties>
                  <target>
                    <condition property="maven.deploy.skip" value="false" else="true">
                      <isset property="os.detected.release.like.fedora" />
                    </condition>
                  </target>
                </configuration>
              </execution>

              <!-- Build the BoringSSL static libs -->
              <execution>
                <id>build-boringssl</id>
                <phase>generate-sources</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <!-- Add the ant tasks from ant-contrib -->
                    <taskdef resource="net/sf/antcontrib/antcontrib.properties" />

                    <mkdir dir="${boringsslBuildDir}" />

                    <if>
                      <equals arg1="${os.detected.name}" arg2="windows" />
                      <then>
                        <!-- On Windows, build with /MT for static linking -->
                        <exec executable="cmake" failonerror="true" dir="${boringsslBuildDir}" resolveexecutable="true">
                          <arg value="-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE" />
                          <arg value="-DCMAKE_BUILD_TYPE=Release" />
                          <arg value="-DCMAKE_C_FLAGS_RELEASE=/MT" />
                          <arg value="-DCMAKE_CXX_FLAGS_RELEASE=/MT" />
                          <arg value="-GNinja" />
                          <arg value=".." />
                        </exec>
                      </then>
                      <else>
                        <!-- On *nix, add ASM flags to disable executable stack -->
                        <exec executable="cmake" failonerror="true" dir="${boringsslBuildDir}" resolveexecutable="true">
                          <arg value="-DCMAKE_POSITION_INDEPENDENT_CODE=TRUE" />
                          <arg value="-DCMAKE_BUILD_TYPE=Release" />
                          <arg value="-DCMAKE_ASM_FLAGS=-Wa,--noexecstack" />
                          <arg value="-GNinja" />
                          <arg value=".." />
                        </exec>
                      </else>
                    </if>
                    <exec executable="ninja" failonerror="true" dir="${boringsslBuildDir}" resolveexecutable="true" />
                  </target>
                </configuration>
              </execution>

              <!-- Build the additional JAR that contains the native library. -->
              <execution>
                <id>native-jar</id>
                <phase>package</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <!-- Add the ant tasks from ant-contrib -->
                    <taskdef resource="net/sf/antcontrib/antcontrib.properties" />

                    <!-- Strip on linux. See https://github.com/netty/netty-tcnative/issues/129 -->
                    <if>
                      <equals arg1="${os.detected.name}" arg2="linux" />
                      <then>
                        <exec executable="strip" failonerror="true" dir="${nativeLibOnlyDir}/META-INF/native/linux${archBits}/" resolveexecutable="true">
                          <arg value="libnetty-tcnative.so" />
                        </exec>
                      </then>
                    </if>

                    <copy todir="${nativeJarWorkdir}">
                      <zipfileset src="${defaultJarFile}" />
                    </copy>
                    <copy todir="${nativeJarWorkdir}" includeEmptyDirs="false">
                      <zipfileset dir="${nativeLibOnlyDir}/META-INF/native" />
                      <regexpmapper handledirsep="yes" from="^(?:[^/]+/)*([^/]+)$" to="META-INF/native/\1" />
                    </copy>
{'fraction_non_alphanumeric': 0.12269902684957205, 'fraction_numerical': 0.0048071286200023445, 'mean_word_length': 1.5980810234541578, 'pattern_counts': {'":': 0, '<': 424, '<?xml version=': 2, '>': 424, 'https://': 3, 'lorem ipsum': 0, 'www.': 4, 'xml': 6}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2848957', 'n_tokens_mistral': 4763, 'n_tokens_neox': 4334, 'n_words': 798}