netty-parent-4.0.36.Final.pom 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. ~ Copyright 2012 The Netty Project
  4. ~
  5. ~ The Netty Project licenses this file to you under the Apache License,
  6. ~ version 2.0 (the "License"); you may not use this file except in compliance
  7. ~ with the License. You may obtain a copy of the License at:
  8. ~
  9. ~ http://www.apache.org/licenses/LICENSE-2.0
  10. ~
  11. ~ Unless required by applicable law or agreed to in writing, software
  12. ~ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  13. ~ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  14. ~ License for the specific language governing permissions and limitations
  15. ~ under the License.
  16. -->
  17. <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">
  18. <modelVersion>4.0.0</modelVersion>
  19. <parent>
  20. <groupId>org.sonatype.oss</groupId>
  21. <artifactId>oss-parent</artifactId>
  22. <version>9</version>
  23. </parent>
  24. <groupId>io.netty</groupId>
  25. <artifactId>netty-parent</artifactId>
  26. <packaging>pom</packaging>
  27. <version>4.0.36.Final</version>
  28. <name>Netty</name>
  29. <url>http://netty.io/</url>
  30. <description>
  31. Netty is an asynchronous event-driven network application framework for
  32. rapid development of maintainable high performance protocol servers and
  33. clients.
  34. </description>
  35. <organization>
  36. <name>The Netty Project</name>
  37. <url>http://netty.io/</url>
  38. </organization>
  39. <licenses>
  40. <license>
  41. <name>Apache License, Version 2.0</name>
  42. <url>http://www.apache.org/licenses/LICENSE-2.0</url>
  43. </license>
  44. </licenses>
  45. <inceptionYear>2008</inceptionYear>
  46. <scm>
  47. <url>https://github.com/netty/netty</url>
  48. <connection>scm:git:git://github.com/netty/netty.git</connection>
  49. <developerConnection>scm:git:ssh://git@github.com/netty/netty.git</developerConnection>
  50. <tag>netty-4.0.36.Final</tag>
  51. </scm>
  52. <developers>
  53. <developer>
  54. <id>netty.io</id>
  55. <name>The Netty Project Contributors</name>
  56. <email>netty@googlegroups.com</email>
  57. <url>http://netty.io/</url>
  58. <organization>The Netty Project</organization>
  59. <organizationUrl>http://netty.io/</organizationUrl>
  60. </developer>
  61. </developers>
  62. <profiles>
  63. <profile>
  64. <id>leak</id>
  65. <properties>
  66. <argLine.leak>-Dio.netty.leakDetectionLevel=paranoid -Dio.netty.leakDetection.maxRecord=32</argLine.leak>
  67. </properties>
  68. </profile>
  69. <profile>
  70. <id>noUnsafe</id>
  71. <properties>
  72. <argLine.noUnsafe>-Dio.netty.noUnsafe</argLine.noUnsafe>
  73. </properties>
  74. </profile>
  75. <profile>
  76. <id>coverage</id>
  77. <properties>
  78. <argLine.coverage>${jacoco.argLine}</argLine.coverage>
  79. </properties>
  80. <build>
  81. <plugins>
  82. <plugin>
  83. <groupId>org.jacoco</groupId>
  84. <artifactId>jacoco-maven-plugin</artifactId>
  85. <version>0.7.5.201505241946</version>
  86. <executions>
  87. <execution>
  88. <id>jacoco-prepare-agent</id>
  89. <goals>
  90. <goal>prepare-agent</goal>
  91. </goals>
  92. <configuration>
  93. <propertyName>jacoco.argLine</propertyName>
  94. </configuration>
  95. </execution>
  96. </executions>
  97. </plugin>
  98. </plugins>
  99. </build>
  100. </profile>
  101. <profile>
  102. <id>jdk8</id>
  103. <activation>
  104. <jdk>[1.8,)</jdk>
  105. </activation>
  106. <properties>
  107. <!-- Our Javadoc has poor enough quality to fail the build thanks to JDK8 javadoc which got more strict. -->
  108. <maven.javadoc.failOnError>false</maven.javadoc.failOnError>
  109. </properties>
  110. </profile>
  111. <profile>
  112. <id>linux</id>
  113. <activation>
  114. <os>
  115. <family>linux</family>
  116. </os>
  117. </activation>
  118. <modules>
  119. <module>transport-native-epoll</module>
  120. </modules>
  121. </profile>
  122. <!--
  123. Netty must be released from RHEL 6.7 x86_64 or compatible so that:
  124. 1) we ship x86_64 version of epoll transport officially, and
  125. 2) we ensure the ABI compatibility with older GLIBC versions.
  126. The shared library built on a distribution with newer GLIBC
  127. will not run on older distributions.
  128. -->
  129. <profile>
  130. <id>restricted-release</id>
  131. <build>
  132. <plugins>
  133. <plugin>
  134. <artifactId>maven-enforcer-plugin</artifactId>
  135. <executions>
  136. <execution>
  137. <id>enforce-release-environment</id>
  138. <goals>
  139. <goal>enforce</goal>
  140. </goals>
  141. <configuration>
  142. <rules>
  143. <requireJavaVersion>
  144. <!-- Enforce JDK 1.7 (and not 1.8+) for compilation. -->
  145. <!-- See: https://github.com/netty/netty/issues/3548 -->
  146. <version>[1.7.0, 1.8.0)</version>
  147. </requireJavaVersion>
  148. <requireProperty>
  149. <regexMessage>
  150. Release process must be performed on linux-x86_64.
  151. </regexMessage>
  152. <property>os.detected.classifier</property>
  153. <regex>^linux-x86_64-fedora$</regex>
  154. </requireProperty>
  155. <requireFilesContent>
  156. <message>
  157. Release process must be performed on RHEL 6.7 or its derivatives.
  158. </message>
  159. <files>
  160. <file>/etc/redhat-release</file>
  161. </files>
  162. <content>release 6.7</content>
  163. </requireFilesContent>
  164. </rules>
  165. </configuration>
  166. </execution>
  167. </executions>
  168. </plugin>
  169. </plugins>
  170. </build>
  171. </profile>
  172. <profile>
  173. <!--
  174. This profile exists because either ALPN or NPN can exits on the class path at once, but not both.
  175. The JDK version is typically used to distinguish which should be used but there is some overlap
  176. where both could be used. ALPN is the default and this profile is enabled with a -Dforcenpn=true arugument
  177. -->
  178. <id>forcenpn</id>
  179. <activation>
  180. <property>
  181. <name>forcenpn</name>
  182. <value>true</value>
  183. </property>
  184. </activation>
  185. <properties>
  186. <jetty.alpnAgent.option>forceNpn=true</jetty.alpnAgent.option>
  187. </properties>
  188. </profile>
  189. </profiles>
  190. <properties>
  191. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  192. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  193. <netty.build.version>22</netty.build.version>
  194. <jboss.marshalling.version>1.3.18.GA</jboss.marshalling.version>
  195. <jetty.alpnAgent.version>1.0.1.Final</jetty.alpnAgent.version>
  196. <jetty.alpnAgent.path>${settings.localRepository}/kr/motd/javaagent/jetty-alpn-agent/${jetty.alpnAgent.version}/jetty-alpn-agent-${jetty.alpnAgent.version}.jar</jetty.alpnAgent.path>
  197. <argLine.common>
  198. -server
  199. -dsa -da -ea:io.netty...
  200. -XX:+AggressiveOpts
  201. -XX:+TieredCompilation
  202. -XX:+UseBiasedLocking
  203. -XX:+UseFastAccessorMethods
  204. -XX:+OptimizeStringConcat
  205. -XX:+HeapDumpOnOutOfMemoryError
  206. </argLine.common>
  207. <!-- Default to ALPN. See forcenpn profile to force NPN -->
  208. <argLine.alpnAgent>-javaagent:${jetty.alpnAgent.path}=${jetty.alpnAgent.option}</argLine.alpnAgent>
  209. <argLine.leak>-D_</argLine.leak> <!-- Overridden when 'leak' profile is active -->
  210. <argLine.noUnsafe>-D_</argLine.noUnsafe> <!-- Overridden when 'noUnsafe' profile is active -->
  211. <argLine.coverage>-D_</argLine.coverage> <!-- Overridden when 'coverage' profile is active -->
  212. <!-- Configure the os-maven-plugin extension to expand the classifier on -->
  213. <!-- Fedora-"like" systems. This is currently only used for the netty-tcnative dependency -->
  214. <os.detection.classifierWithLikes>fedora</os.detection.classifierWithLikes>
  215. <tcnative.artifactId>netty-tcnative</tcnative.artifactId>
  216. <tcnative.version>1.1.33.Fork15</tcnative.version>
  217. <tcnative.classifier>${os.detected.classifier}</tcnative.classifier>
  218. <epoll.classifier>${os.detected.name}-${os.detected.arch}</epoll.classifier>
  219. </properties>
  220. <modules>
  221. <module>common</module>
  222. <module>buffer</module>
  223. <module>codec</module>
  224. <module>codec-haproxy</module>
  225. <module>codec-http</module>
  226. <module>codec-socks</module>
  227. <module>transport</module>
  228. <module>transport-rxtx</module>
  229. <module>transport-sctp</module>
  230. <module>transport-udt</module>
  231. <module>handler</module>
  232. <module>example</module>
  233. <module>testsuite</module>
  234. <module>testsuite-osgi</module>
  235. <module>microbench</module>
  236. <module>all</module>
  237. <module>tarball</module>
  238. </modules>
  239. <dependencyManagement>
  240. <dependencies>
  241. <!-- Byte code generator - completely optional -->
  242. <dependency>
  243. <groupId>org.javassist</groupId>
  244. <artifactId>javassist</artifactId>
  245. <version>3.19.0-GA</version>
  246. <scope>compile</scope>
  247. <optional>true</optional>
  248. </dependency>
  249. <!-- JBoss Marshalling - completely optional -->
  250. <dependency>
  251. <groupId>org.jboss.marshalling</groupId>
  252. <artifactId>jboss-marshalling</artifactId>
  253. <version>${jboss.marshalling.version}</version>
  254. <scope>compile</scope>
  255. <optional>true</optional>
  256. </dependency>
  257. <!-- SPDY and HTTP/2 - completely optional -->
  258. <dependency>
  259. <groupId>org.eclipse.jetty.npn</groupId>
  260. <artifactId>npn-api</artifactId>
  261. <version>1.1.1.v20141010</version>
  262. <scope>provided</scope> <!-- Provided by npn-boot -->
  263. </dependency>
  264. <dependency>
  265. <groupId>org.eclipse.jetty.alpn</groupId>
  266. <artifactId>alpn-api</artifactId>
  267. <version>1.1.2.v20150522</version>
  268. <scope>provided</scope> <!-- Provided by alpn-boot -->
  269. </dependency>
  270. <!-- Google Protocol Buffers - completely optional -->
  271. <dependency>
  272. <groupId>com.google.protobuf</groupId>
  273. <artifactId>protobuf-java</artifactId>
  274. <version>2.5.0</version>
  275. </dependency>
  276. <!-- Our own Tomcat Native fork - completely optional, used for acclerating SSL with OpenSSL. -->
  277. <dependency>
  278. <groupId>${project.groupId}</groupId>
  279. <artifactId>${tcnative.artifactId}</artifactId>
  280. <version>${tcnative.version}</version>
  281. <classifier>${tcnative.classifier}</classifier>
  282. <scope>compile</scope>
  283. <optional>true</optional>
  284. </dependency>
  285. <!--
  286. Bouncy Castle - completely optional, only needed when:
  287. - you generate a temporary self-signed certificate using SelfSignedCertificate, and
  288. - you don't use the JDK which doesn't provide sun.security.x509 package.
  289. -->
  290. <dependency>
  291. <groupId>org.bouncycastle</groupId>
  292. <artifactId>bcpkix-jdk15on</artifactId>
  293. <version>1.50</version>
  294. <scope>compile</scope>
  295. <optional>true</optional>
  296. </dependency>
  297. <dependency>
  298. <groupId>com.jcraft</groupId>
  299. <artifactId>jzlib</artifactId>
  300. <version>1.1.3</version>
  301. </dependency>
  302. <dependency>
  303. <groupId>org.rxtx</groupId>
  304. <artifactId>rxtx</artifactId>
  305. <version>2.1.7</version>
  306. </dependency>
  307. <dependency>
  308. <groupId>com.barchart.udt</groupId>
  309. <artifactId>barchart-udt-bundle</artifactId>
  310. <version>2.3.0</version>
  311. </dependency>
  312. <dependency>
  313. <groupId>javax.servlet</groupId>
  314. <artifactId>servlet-api</artifactId>
  315. <version>2.5</version>
  316. </dependency>
  317. <dependency>
  318. <groupId>org.slf4j</groupId>
  319. <artifactId>slf4j-api</artifactId>
  320. <version>1.7.5</version>
  321. </dependency>
  322. <dependency>
  323. <groupId>commons-logging</groupId>
  324. <artifactId>commons-logging</artifactId>
  325. <version>1.1.3</version>
  326. </dependency>
  327. <dependency>
  328. <groupId>log4j</groupId>
  329. <artifactId>log4j</artifactId>
  330. <version>1.2.17</version>
  331. <exclusions>
  332. <exclusion>
  333. <artifactId>mail</artifactId>
  334. <groupId>javax.mail</groupId>
  335. </exclusion>
  336. <exclusion>
  337. <artifactId>jms</artifactId>
  338. <groupId>javax.jms</groupId>
  339. </exclusion>
  340. <exclusion>
  341. <artifactId>jmxtools</artifactId>
  342. <groupId>com.sun.jdmk</groupId>
  343. </exclusion>
  344. <exclusion>
  345. <artifactId>jmxri</artifactId>
  346. <groupId>com.sun.jmx</groupId>
  347. </exclusion>
  348. </exclusions>
  349. <optional>true</optional>
  350. </dependency>
  351. <!-- Metrics providers -->
  352. <dependency>
  353. <groupId>com.yammer.metrics</groupId>
  354. <artifactId>metrics-core</artifactId>
  355. <version>2.2.0</version>
  356. </dependency>
  357. <!-- Common test dependencies -->
  358. <dependency>
  359. <groupId>junit</groupId>
  360. <artifactId>junit</artifactId>
  361. <version>4.12</version>
  362. <scope>test</scope>
  363. </dependency>
  364. <dependency>
  365. <groupId>${project.groupId}</groupId>
  366. <artifactId>netty-build</artifactId>
  367. <version>${netty.build.version}</version>
  368. <scope>test</scope>
  369. </dependency>
  370. <dependency>
  371. <groupId>org.hamcrest</groupId>
  372. <artifactId>hamcrest-library</artifactId>
  373. <version>1.3</version>
  374. <scope>test</scope>
  375. </dependency>
  376. <dependency>
  377. <groupId>org.easymock</groupId>
  378. <artifactId>easymock</artifactId>
  379. <version>3.2</version>
  380. <scope>test</scope>
  381. </dependency>
  382. <dependency>
  383. <groupId>org.easymock</groupId>
  384. <artifactId>easymockclassextension</artifactId>
  385. <version>3.2</version>
  386. <scope>test</scope>
  387. </dependency>
  388. <dependency>
  389. <groupId>org.jmock</groupId>
  390. <artifactId>jmock-junit4</artifactId>
  391. <version>2.6.0</version>
  392. <scope>test</scope>
  393. <exclusions>
  394. <exclusion>
  395. <groupId>junit</groupId>
  396. <artifactId>junit-dep</artifactId>
  397. </exclusion>
  398. </exclusions>
  399. </dependency>
  400. <dependency>
  401. <groupId>org.mockito</groupId>
  402. <artifactId>mockito-core</artifactId>
  403. <version>1.10.8</version>
  404. <scope>test</scope>
  405. </dependency>
  406. <dependency>
  407. <groupId>ch.qos.logback</groupId>
  408. <artifactId>logback-classic</artifactId>
  409. <version>1.0.13</version>
  410. <scope>test</scope>
  411. </dependency>
  412. <!-- Test dependencies for jboss marshalling encoder/decoder -->
  413. <dependency>
  414. <groupId>org.jboss.marshalling</groupId>
  415. <artifactId>jboss-marshalling-serial</artifactId>
  416. <version>${jboss.marshalling.version}</version>
  417. <scope>test</scope>
  418. </dependency>
  419. <dependency>
  420. <groupId>org.jboss.marshalling</groupId>
  421. <artifactId>jboss-marshalling-river</artifactId>
  422. <version>${jboss.marshalling.version}</version>
  423. <scope>test</scope>
  424. </dependency>
  425. <!-- Test dependencies for microbench -->
  426. <dependency>
  427. <groupId>com.google.caliper</groupId>
  428. <artifactId>caliper</artifactId>
  429. <version>0.5-rc1</version>
  430. <scope>test</scope>
  431. </dependency>
  432. <!-- Test suite dependency for generating a compressed heap dump file -->
  433. <dependency>
  434. <groupId>org.tukaani</groupId>
  435. <artifactId>xz</artifactId>
  436. <version>1.5</version>
  437. </dependency>
  438. </dependencies>
  439. </dependencyManagement>
  440. <dependencies>
  441. <!-- Enable Javassist support for all test runs -->
  442. <dependency>
  443. <groupId>org.javassist</groupId>
  444. <artifactId>javassist</artifactId>
  445. <scope>test</scope>
  446. </dependency>
  447. <!-- Testing frameworks and related dependencies -->
  448. <dependency>
  449. <groupId>junit</groupId>
  450. <artifactId>junit</artifactId>
  451. <scope>test</scope>
  452. </dependency>
  453. <dependency>
  454. <groupId>${project.groupId}</groupId>
  455. <artifactId>netty-build</artifactId>
  456. <scope>test</scope>
  457. </dependency>
  458. <dependency>
  459. <groupId>org.hamcrest</groupId>
  460. <artifactId>hamcrest-library</artifactId>
  461. <scope>test</scope>
  462. </dependency>
  463. <dependency>
  464. <groupId>org.easymock</groupId>
  465. <artifactId>easymock</artifactId>
  466. <scope>test</scope>
  467. </dependency>
  468. <dependency>
  469. <groupId>org.easymock</groupId>
  470. <artifactId>easymockclassextension</artifactId>
  471. <scope>test</scope>
  472. </dependency>
  473. <dependency>
  474. <groupId>org.jmock</groupId>
  475. <artifactId>jmock-junit4</artifactId>
  476. <scope>test</scope>
  477. </dependency>
  478. <dependency>
  479. <groupId>org.mockito</groupId>
  480. <artifactId>mockito-core</artifactId>
  481. <scope>test</scope>
  482. </dependency>
  483. <dependency>
  484. <groupId>ch.qos.logback</groupId>
  485. <artifactId>logback-classic</artifactId>
  486. <scope>test</scope>
  487. </dependency>
  488. </dependencies>
  489. <build>
  490. <extensions>
  491. <extension>
  492. <groupId>kr.motd.maven</groupId>
  493. <artifactId>os-maven-plugin</artifactId>
  494. <version>1.4.1.Final</version>
  495. </extension>
  496. </extensions>
  497. <plugins>
  498. <plugin>
  499. <artifactId>maven-enforcer-plugin</artifactId>
  500. <executions>
  501. <execution>
  502. <id>enforce-tools</id>
  503. <goals>
  504. <goal>enforce</goal>
  505. </goals>
  506. <configuration>
  507. <rules>
  508. <requireJavaVersion>
  509. <!-- Enforce JDK 1.7+ for compilation. -->
  510. <!-- This is needed because of java.util.zip.Deflater and NIO UDP multicast. -->
  511. <version>[1.7.0,)</version>
  512. </requireJavaVersion>
  513. <requireMavenVersion>
  514. <version>[3.1.1,)</version>
  515. </requireMavenVersion>
  516. </rules>
  517. </configuration>
  518. </execution>
  519. </executions>
  520. </plugin>
  521. <plugin>
  522. <artifactId>maven-compiler-plugin</artifactId>
  523. <version>3.1</version>
  524. <configuration>
  525. <compilerVersion>1.7</compilerVersion>
  526. <fork>true</fork>
  527. <source>1.6</source>
  528. <target>1.6</target>
  529. <debug>true</debug>
  530. <optimize>true</optimize>
  531. <showDeprecation>true</showDeprecation>
  532. <showWarnings>true</showWarnings>
  533. <compilerArgument>-Xlint:-options</compilerArgument>
  534. <!-- XXX: maven-release-plugin complains - MRELEASE-715 -->
  535. <!--
  536. <compilerArguments>
  537. <Xlint:-options />
  538. <Xlint:unchecked />
  539. <Xlint:deprecation />
  540. </compilerArguments>
  541. -->
  542. <meminitial>256m</meminitial>
  543. <maxmem>1024m</maxmem>
  544. <excludes>
  545. <exclude>**/package-info.java</exclude>
  546. </excludes>
  547. </configuration>
  548. </plugin>
  549. <plugin>
  550. <!-- ensure that only methods available in java 1.6 can
  551. be used even when compiling with java 1.7+ -->
  552. <groupId>org.codehaus.mojo</groupId>
  553. <artifactId>animal-sniffer-maven-plugin</artifactId>
  554. <version>1.9</version>
  555. <dependencies>
  556. <!-- Upgrade ASM and support Java 8 bytecode -->
  557. <dependency>
  558. <groupId>org.ow2.asm</groupId>
  559. <artifactId>asm-all</artifactId>
  560. <version>5.0.3</version>
  561. </dependency>
  562. </dependencies>
  563. <configuration>
  564. <signature>
  565. <groupId>org.codehaus.mojo.signature</groupId>
  566. <artifactId>java16</artifactId>
  567. <version>1.0</version>
  568. </signature>
  569. <ignores>
  570. <ignore>sun.misc.Unsafe</ignore>
  571. <ignore>sun.misc.Cleaner</ignore>
  572. <ignore>sun.nio.ch.DirectBuffer</ignore>
  573. <ignore>java.util.zip.Deflater</ignore>
  574. <!-- Used for NIO UDP multicast -->
  575. <ignore>java.nio.channels.DatagramChannel</ignore>
  576. <ignore>java.nio.channels.MembershipKey</ignore>
  577. <ignore>java.net.StandardProtocolFamily</ignore>
  578. <ignore>java.nio.channels.spi.SelectorProvider</ignore>
  579. <!-- Self-signed certificate generation -->
  580. <ignore>sun.security.x509.AlgorithmId</ignore>
  581. <ignore>sun.security.x509.CertificateAlgorithmId</ignore>
  582. <ignore>sun.security.x509.CertificateIssuerName</ignore>
  583. <ignore>sun.security.x509.CertificateSerialNumber</ignore>
  584. <ignore>sun.security.x509.CertificateSubjectName</ignore>
  585. <ignore>sun.security.x509.CertificateValidity</ignore>
  586. <ignore>sun.security.x509.CertificateVersion</ignore>
  587. <ignore>sun.security.x509.CertificateX509Key</ignore>
  588. <ignore>sun.security.x509.X500Name</ignore>
  589. <ignore>sun.security.x509.X509CertInfo</ignore>
  590. <ignore>sun.security.x509.X509CertImpl</ignore>
  591. <!-- SSLSession implementation -->
  592. <ignore>javax.net.ssl.SSLEngine</ignore>
  593. <ignore>javax.net.ssl.X509ExtendedTrustManager</ignore>
  594. <ignore>javax.net.ssl.SSLParameters</ignore>
  595. <ignore>java.security.AlgorithmConstraints</ignore>
  596. <ignore>java.security.cert.CertificateRevokedException</ignore>
  597. <ignore>java.util.concurrent.ConcurrentLinkedDeque</ignore>
  598. </ignores>
  599. </configuration>
  600. <executions>
  601. <execution>
  602. <phase>process-classes</phase>
  603. <goals>
  604. <goal>check</goal>
  605. </goals>
  606. </execution>
  607. </executions>
  608. </plugin>
  609. <plugin>
  610. <artifactId>maven-checkstyle-plugin</artifactId>
  611. <version>2.10</version>
  612. <executions>
  613. <execution>
  614. <id>check-style</id>
  615. <goals>
  616. <goal>check</goal>
  617. </goals>
  618. <phase>validate</phase>
  619. <configuration>
  620. <consoleOutput>true</consoleOutput>
  621. <logViolationsToConsole>true</logViolationsToConsole>
  622. <failsOnError>true</failsOnError>
  623. <failOnViolation>true</failOnViolation>
  624. <configLocation>io/netty/checkstyle.xml</configLocation>
  625. <includeTestSourceDirectory>true</includeTestSourceDirectory>
  626. </configuration>
  627. </execution>
  628. </executions>
  629. <dependencies>
  630. <dependency>
  631. <groupId>${project.groupId}</groupId>
  632. <artifactId>netty-build</artifactId>
  633. <version>${netty.build.version}</version>
  634. </dependency>
  635. </dependencies>
  636. </plugin>
  637. <plugin>
  638. <groupId>org.codehaus.mojo</groupId>
  639. <artifactId>xml-maven-plugin</artifactId>
  640. <version>1.0.1</version>
  641. <executions>
  642. <execution>
  643. <id>check-style</id>
  644. <goals>
  645. <goal>check-format</goal>
  646. </goals>
  647. <phase>validate</phase>
  648. </execution>
  649. </executions>
  650. <configuration>
  651. <formatFileSets>
  652. <formatFileSet>
  653. <directory>${project.basedir}</directory>
  654. <includes>
  655. <include>**/pom.xml</include>
  656. </includes>
  657. </formatFileSet>
  658. </formatFileSets>
  659. <useDefaultFormatFileSet>false</useDefaultFormatFileSet>
  660. </configuration>
  661. </plugin>
  662. <!-- Download the npn-boot.jar in advance to add it to the boot classpath. -->
  663. <plugin>
  664. <artifactId>maven-dependency-plugin</artifactId>
  665. <executions>
  666. <execution>
  667. <id>get-jetty-alpn-agent</id>
  668. <phase>validate</phase>
  669. <goals>
  670. <goal>get</goal>
  671. </goals>
  672. <configuration>
  673. <groupId>kr.motd.javaagent</groupId>
  674. <artifactId>jetty-alpn-agent</artifactId>
  675. <version>${jetty.alpnAgent.version}</version>
  676. </configuration>
  677. </execution>
  678. </executions>
  679. </plugin>
  680. <plugin>
  681. <artifactId>maven-surefire-plugin</artifactId>
  682. <configuration>
  683. <includes>
  684. <include>**/*Test*.java</include>
  685. <include>**/*Benchmark*.java</include>
  686. </includes>
  687. <excludes>
  688. <exclude>**/Abstract*</exclude>
  689. <exclude>**/TestUtil*</exclude>
  690. </excludes>
  691. <runOrder>random</runOrder>
  692. <argLine>${argLine.common} ${argLine.alpnAgent} ${argLine.leak} ${argLine.coverage} ${argLine.noUnsafe}</argLine>
  693. <properties>
  694. <property>
  695. <name>listener</name>
  696. <value>io.netty.build.junit.TimedOutTestsListener</value>
  697. </property>
  698. </properties>
  699. </configuration>
  700. </plugin>
  701. <!-- always produce osgi bundles -->
  702. <plugin>
  703. <groupId>org.apache.felix</groupId>
  704. <artifactId>maven-bundle-plugin</artifactId>
  705. <version>2.4.0</version>
  706. <executions>
  707. <execution>
  708. <id>generate-manifest</id>
  709. <phase>process-classes</phase>
  710. <goals>
  711. <goal>manifest</goal>
  712. </goals>
  713. <configuration>
  714. <supportedProjectTypes>
  715. <supportedProjectType>jar</supportedProjectType>
  716. <supportedProjectType>bundle</supportedProjectType>
  717. </supportedProjectTypes>
  718. <instructions>
  719. <Export-Package>${project.groupId}.*</Export-Package>
  720. <!-- enforce JVM vendor package as optional -->
  721. <Import-Package>sun.misc.*;resolution:=optional,sun.nio.ch;resolution:=optional,sun.security.*;resolution:=optional,org.eclipse.jetty.npn;version="[1,2)";resolution:=optional,org.eclipse.jetty.alpn;version="[1,2)";resolution:=optional,*</Import-Package>
  722. <!-- override "internal" private package convention -->
  723. <Private-Package>!*</Private-Package>
  724. </instructions>
  725. </configuration>
  726. </execution>
  727. </executions>
  728. </plugin>
  729. <plugin>
  730. <groupId>org.codehaus.mojo</groupId>
  731. <artifactId>build-helper-maven-plugin</artifactId>
  732. <version>1.8</version>
  733. <executions>
  734. <execution>
  735. <id>parse-version</id>
  736. <goals>
  737. <goal>parse-version</goal>
  738. </goals>
  739. </execution>
  740. </executions>
  741. </plugin>
  742. <plugin>
  743. <artifactId>maven-source-plugin</artifactId>
  744. <version>2.2.1</version>
  745. <!-- Eclipse-related OSGi manifests
  746. See https://github.com/netty/netty/issues/3886
  747. More information: http://rajakannappan.blogspot.ie/2010/03/automating-eclipse-source-bundle.html -->
  748. <configuration>
  749. <archive>
  750. <manifestEntries>
  751. <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
  752. <Bundle-Name>${project.name}</Bundle-Name>
  753. <Bundle-SymbolicName>${project.groupId}.${project.artifactId}.source</Bundle-SymbolicName>
  754. <Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
  755. <Bundle-Version>${parsedVersion.osgiVersion}</Bundle-Version>
  756. <Eclipse-SourceBundle>${project.groupId}.${project.artifactId};version="${parsedVersion.osgiVersion}";roots:="."</Eclipse-SourceBundle>
  757. </manifestEntries>
  758. </archive>
  759. </configuration>
  760. <executions>
  761. <!--
  762. ~ This workaround prevents Maven from executing the 'generate-sources' phase twice.
  763. ~ See http://jira.codehaus.org/browse/MSOURCES-13
  764. ~ and http://blog.peterlynch.ca/2010/05/maven-how-to-prevent-generate-sources.html
  765. -->
  766. <execution>
  767. <id>attach-sources</id>
  768. <phase>invalid</phase>
  769. <goals>
  770. <goal>jar</goal>
  771. </goals>
  772. </execution>
  773. <execution>
  774. <id>attach-sources-no-fork</id>
  775. <phase>package</phase>
  776. <goals>
  777. <goal>jar-no-fork</goal>
  778. </goals>
  779. </execution>
  780. </executions>
  781. </plugin>
  782. <plugin>
  783. <artifactId>maven-javadoc-plugin</artifactId>
  784. <version>2.9.1</version>
  785. <configuration>
  786. <detectOfflineLinks>false</detectOfflineLinks>
  787. <breakiterator>true</breakiterator>
  788. <version>false</version>
  789. <author>false</author>
  790. <keywords>true</keywords>
  791. </configuration>
  792. </plugin>
  793. <plugin>
  794. <artifactId>maven-deploy-plugin</artifactId>
  795. <version>2.7</version>
  796. <configuration>
  797. <retryFailedDeploymentCount>10</retryFailedDeploymentCount>
  798. </configuration>
  799. </plugin>
  800. <plugin>
  801. <artifactId>maven-release-plugin</artifactId>
  802. <version>2.4.2</version>
  803. <configuration>
  804. <useReleaseProfile>false</useReleaseProfile>
  805. <arguments>-P restricted-release,sonatype-oss-release,full</arguments>
  806. <autoVersionSubmodules>true</autoVersionSubmodules>
  807. <allowTimestampedSnapshots>false</allowTimestampedSnapshots>
  808. <tagNameFormat>netty-@{project.version}</tagNameFormat>
  809. </configuration>
  810. <dependencies>
  811. <dependency>
  812. <groupId>org.apache.maven.scm</groupId>
  813. <artifactId>maven-scm-api</artifactId>
  814. <version>1.8.1</version>
  815. </dependency>
  816. <dependency>
  817. <groupId>org.apache.maven.scm</groupId>
  818. <artifactId>maven-scm-provider-gitexe</artifactId>
  819. <version>1.8.1</version>
  820. </dependency>
  821. </dependencies>
  822. </plugin>
  823. <!-- Ensure to put maven-antrun-plugin at the end of the plugin list
  824. so that they are run lastly in the same phase. -->
  825. <plugin>
  826. <artifactId>maven-antrun-plugin</artifactId>
  827. <executions>
  828. <!-- Generate the version properties for all artifacts. -->
  829. <execution>
  830. <id>write-version-properties</id>
  831. <phase>initialize</phase>
  832. <goals>
  833. <goal>run</goal>
  834. </goals>
  835. <configuration>
  836. <target>
  837. <taskdef resource="net/sf/antcontrib/antlib.xml" />
  838. <!-- Get the information about the latest commit -->
  839. <exec executable="git" outputproperty="gitOutput.lastCommit" resultproperty="gitExitCode.lastCommit" failonerror="false" failifexecutionfails="false">
  840. <arg value="log" />
  841. <arg value="-1" />
  842. <arg value="--format=format:%h %H %cd" />
  843. <arg value="--date=iso" />
  844. </exec>
  845. <propertyregex property="shortCommitHash" input="${gitOutput.lastCommit}" regexp="^([0-9a-f]+) .*$" select="\1" casesensitive="true" defaultValue="0" />
  846. <propertyregex property="longCommitHash" input="${gitOutput.lastCommit}" regexp="^[0-9a-f]+ ([0-9a-f]{40}) .*$" select="\1" casesensitive="true" defaultValue="0000000000000000000000000000000000000000" />
  847. <propertyregex property="commitDate" input="${gitOutput.lastCommit}" regexp="^[0-9a-f]+ [0-9a-f]{40} (.*)$" select="\1" casesensitive="true" defaultValue="1970-01-01 00:00:00 +0000" />
  848. <!-- Get the information abount whether the repository is clean or dirty -->
  849. <exec executable="git" outputproperty="gitOutput.repoStatus" resultproperty="gitExitCode.repoStatus" failonerror="false" failifexecutionfails="false">
  850. <arg value="status" />
  851. <arg value="--porcelain" />
  852. </exec>
  853. <if>
  854. <equals arg2="0" arg1="${gitExitCode.repoStatus}" />
  855. <then>
  856. <if>
  857. <equals arg2="" arg1="${gitOutput.repoStatus}" />
  858. <then>
  859. <property name="repoStatus" value="clean" />
  860. </then>
  861. <else>
  862. <property name="repoStatus" value="dirty" />
  863. </else>
  864. </if>
  865. </then>
  866. <else>
  867. <property name="repoStatus" value="unknown" />
  868. </else>
  869. </if>
  870. <!-- Print the obtained commit information. -->
  871. <echo>Current commit: ${shortCommitHash} on ${commitDate}</echo>
  872. <!-- Generate the .properties file. -->
  873. <!--
  874. <property name="metaInfDir" value="${project.basedir}/src/main/resources/META-INF" />
  875. -->
  876. <property name="metaInfDir" value="${project.build.outputDirectory}/META-INF" />
  877. <property name="versionPropFile" value="${metaInfDir}/${project.groupId}.versions.properties" />
  878. <mkdir dir="${metaInfDir}" />
  879. <delete file="${versionPropFile}" quiet="true" />
  880. <propertyfile file="${versionPropFile}" comment="Generated by netty-parent/pom.xml">
  881. <entry key="${project.artifactId}.version" value="${project.version}" />
  882. <entry key="${project.artifactId}.buildDate" type="date" value="now" pattern="yyyy-MM-dd HH:mm:ss Z" />
  883. <entry key="${project.artifactId}.commitDate" value="${commitDate}" />
  884. <entry key="${project.artifactId}.shortCommitHash" value="${shortCommitHash}" />
  885. <entry key="${project.artifactId}.longCommitHash" value="${longCommitHash}" />
  886. <entry key="${project.artifactId}.repoStatus" value="${repoStatus}" />
  887. </propertyfile>
  888. </target>
  889. </configuration>
  890. </execution>
  891. </executions>
  892. <dependencies>
  893. <dependency>
  894. <groupId>org.apache.ant</groupId>
  895. <artifactId>ant</artifactId>
  896. <version>1.8.2</version>
  897. </dependency>
  898. <dependency>
  899. <groupId>org.apache.ant</groupId>
  900. <artifactId>ant-launcher</artifactId>
  901. <version>1.8.2</version>
  902. </dependency>
  903. <dependency>
  904. <groupId>ant-contrib</groupId>
  905. <artifactId>ant-contrib</artifactId>
  906. <version>1.0b3</version>
  907. <exclusions>
  908. <exclusion>
  909. <groupId>ant</groupId>
  910. <artifactId>ant</artifactId>
  911. </exclusion>
  912. </exclusions>
  913. </dependency>
  914. </dependencies>
  915. </plugin>
  916. </plugins>
  917. <pluginManagement>
  918. <plugins>
  919. <plugin>
  920. <artifactId>maven-enforcer-plugin</artifactId>
  921. <version>1.3.1</version>
  922. <dependencies>
  923. <!-- Provides the 'requireFilesContent' enforcer rule. -->
  924. <dependency>
  925. <groupId>com.ceilfors.maven.plugin</groupId>
  926. <artifactId>enforcer-rules</artifactId>
  927. <version>1.1.0</version>
  928. </dependency>
  929. </dependencies>
  930. </plugin>
  931. <!-- keep surefire and failsafe in sync -->
  932. <plugin>
  933. <artifactId>maven-surefire-plugin</artifactId>
  934. <version>2.15</version>
  935. </plugin>
  936. <!-- keep surefire and failsafe in sync -->
  937. <plugin>
  938. <artifactId>maven-failsafe-plugin</artifactId>
  939. <version>2.15</version>
  940. </plugin>
  941. <plugin>
  942. <artifactId>maven-clean-plugin</artifactId>
  943. <version>2.5</version>
  944. </plugin>
  945. <plugin>
  946. <artifactId>maven-resources-plugin</artifactId>
  947. <version>2.6</version>
  948. </plugin>
  949. <plugin>
  950. <groupId>org.ops4j.pax.exam</groupId>
  951. <artifactId>maven-paxexam-plugin</artifactId>
  952. <version>1.2.4</version>
  953. </plugin>
  954. <plugin>
  955. <artifactId>maven-jar-plugin</artifactId>
  956. <version>2.5</version>
  957. <executions>
  958. <execution>
  959. <id>default-jar</id>
  960. <configuration>
  961. <archive>
  962. <manifest>
  963. <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
  964. </manifest>
  965. <index>true</index>
  966. <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
  967. </archive>
  968. </configuration>
  969. </execution>
  970. </executions>
  971. </plugin>
  972. <plugin>
  973. <artifactId>maven-dependency-plugin</artifactId>
  974. <version>2.8</version>
  975. </plugin>
  976. <plugin>
  977. <artifactId>maven-assembly-plugin</artifactId>
  978. <version>2.4</version>
  979. </plugin>
  980. <plugin>
  981. <!-- Do NOT upgrade -->
  982. <artifactId>maven-jxr-plugin</artifactId>
  983. <version>2.2</version>
  984. </plugin>
  985. <plugin>
  986. <artifactId>maven-antrun-plugin</artifactId>
  987. <version>1.7</version>
  988. <dependencies>
  989. <dependency>
  990. <groupId>ant-contrib</groupId>
  991. <artifactId>ant-contrib</artifactId>
  992. <version>1.0b3</version>
  993. <exclusions>
  994. <exclusion>
  995. <groupId>ant</groupId>
  996. <artifactId>ant</artifactId>
  997. </exclusion>
  998. </exclusions>
  999. </dependency>
  1000. </dependencies>
  1001. </plugin>
  1002. <plugin>
  1003. <groupId>org.codehaus.mojo</groupId>
  1004. <artifactId>build-helper-maven-plugin</artifactId>
  1005. <version>1.8</version>
  1006. </plugin>
  1007. <plugin>
  1008. <groupId>org.fusesource.hawtjni</groupId>
  1009. <artifactId>maven-hawtjni-plugin</artifactId>
  1010. <version>1.10</version>
  1011. </plugin>
  1012. <plugin>
  1013. <groupId>kr.motd.maven</groupId>
  1014. <artifactId>exec-maven-plugin</artifactId>
  1015. <version>1.0.0.Final</version>
  1016. </plugin>
  1017. <!-- Workaround for the 'M2E plugin execution not covered' problem.
  1018. See: http://wiki.eclipse.org/M2E_plugin_execution_not_covered -->
  1019. <plugin>
  1020. <groupId>org.eclipse.m2e</groupId>
  1021. <artifactId>lifecycle-mapping</artifactId>
  1022. <version>1.0.0</version>
  1023. <configuration>
  1024. <lifecycleMappingMetadata>
  1025. <pluginExecutions>
  1026. <pluginExecution>
  1027. <pluginExecutionFilter>
  1028. <groupId>org.apache.maven.plugins</groupId>
  1029. <artifactId>maven-antrun-plugin</artifactId>
  1030. <versionRange>[1.7,)</versionRange>
  1031. <goals>
  1032. <goal>run</goal>
  1033. </goals>
  1034. </pluginExecutionFilter>
  1035. <action>
  1036. <ignore />
  1037. </action>
  1038. </pluginExecution>
  1039. <pluginExecution>
  1040. <pluginExecutionFilter>
  1041. <groupId>org.apache.maven.plugins</groupId>
  1042. <artifactId>maven-checkstyle-plugin</artifactId>
  1043. <versionRange>[1.0,)</versionRange>
  1044. <goals>
  1045. <goal>check</goal>
  1046. </goals>
  1047. </pluginExecutionFilter>
  1048. <action>
  1049. <ignore />
  1050. </action>
  1051. </pluginExecution>
  1052. <pluginExecution>
  1053. <pluginExecutionFilter>
  1054. <groupId>org.apache.maven.plugins</groupId>
  1055. <artifactId>maven-enforcer-plugin</artifactId>
  1056. <versionRange>[1.0,)</versionRange>
  1057. <goals>
  1058. <goal>enforce</goal>
  1059. </goals>
  1060. </pluginExecutionFilter>
  1061. <action>
  1062. <ignore />
  1063. </action>
  1064. </pluginExecution>
  1065. <pluginExecution>
  1066. <pluginExecutionFilter>
  1067. <groupId>org.apache.maven.plugins</groupId>
  1068. <artifactId>maven-clean-plugin</artifactId>
  1069. <versionRange>[1.0,)</versionRange>
  1070. <goals>
  1071. <goal>clean</goal>
  1072. </goals>
  1073. </pluginExecutionFilter>
  1074. <action>
  1075. <ignore />
  1076. </action>
  1077. </pluginExecution>
  1078. <pluginExecution>
  1079. <pluginExecutionFilter>
  1080. <groupId>org.apache.felix</groupId>
  1081. <artifactId>maven-bundle-plugin</artifactId>
  1082. <versionRange>[2.4,)</versionRange>
  1083. <goals>
  1084. <goal>manifest</goal>
  1085. </goals>
  1086. </pluginExecutionFilter>
  1087. <action>
  1088. <ignore />
  1089. </action>
  1090. </pluginExecution>
  1091. <pluginExecution>
  1092. <pluginExecutionFilter>
  1093. <groupId>org.fusesource.hawtjni</groupId>
  1094. <artifactId>maven-hawtjni-plugin</artifactId>
  1095. <versionRange>[1.10,)</versionRange>
  1096. <goals>
  1097. <goal>generate</goal>
  1098. <goal>build</goal>
  1099. </goals>
  1100. </pluginExecutionFilter>
  1101. <action>
  1102. <ignore />
  1103. </action>
  1104. </pluginExecution>
  1105. <pluginExecution>
  1106. <pluginExecutionFilter>
  1107. <groupId>org.apache.maven.plugins</groupId>
  1108. <artifactId>maven-dependency-plugin</artifactId>
  1109. <versionRange>[2.8,)</versionRange>
  1110. <goals>
  1111. <goal>get</goal>
  1112. <goal>copy</goal>
  1113. <goal>properties</goal>
  1114. </goals>
  1115. </pluginExecutionFilter>
  1116. <action>
  1117. <ignore />
  1118. </action>
  1119. </pluginExecution>
  1120. </pluginExecutions>
  1121. </lifecycleMappingMetadata>
  1122. </configuration>
  1123. </plugin>
  1124. </plugins>
  1125. </pluginManagement>
  1126. </build>
  1127. </project>