1<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">
2  <modelVersion>4.0.0</modelVersion>
3
4  <parent>
5    <groupId>org.apache</groupId>
6    <artifactId>apache</artifactId>
7    <version>14</version>
8  </parent>
9
10  <groupId>com.twitter</groupId>
11  <artifactId>parquet</artifactId>
12  <version>1.6.0</version>
13  <packaging>pom</packaging>
14
15  <name>Apache Parquet MR (Incubating)</name>
16  <url>https://parquet.incubator.apache.org</url>
17  <description>Parquet is a columnar storage format that supports nested data. This provides the java implementation.</description>
18
19  <scm>
20    <connection>scm:git:git@github.com:apache/incubator-parquet-mr.git</connection>
21    <url>scm:git:git@github.com:apache/incubator-parquet-mr.git</url>
22    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-parquet-mr.git</developerConnection>
23  </scm>
24
25  <licenses>
26    <license>
27      <name>The Apache Software License, Version 2.0</name>
28      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
29    </license>
30  </licenses>
31
32  <issueManagement>
33    <system>JIRA</system>
34    <url>https://issues.apache.org/jira/browse/PARQUET</url>
35  </issueManagement>
36
37  <mailingLists>
38    <mailingList>
39      <name>Dev Mailing List</name>
40      <post>dev@parquet.incubator.apache.org</post>
41      <subscribe>dev-subscribe@parquet.incubator.apache.org</subscribe>
42      <unsubscribe>dev-unsubscribe@parquet.incubator.apache.org</unsubscribe>
43    </mailingList>
44    <mailingList>
45      <name>Commits Mailing List</name>
46      <post>commits@parquet.incubator.apache.org</post>
47      <subscribe>commits-subscribe@parquet.incubator.apache.org</subscribe>
48      <unsubscribe>commits-unsubscribe@parquet.incubator.apache.org</unsubscribe>
49    </mailingList>
50  </mailingLists>
51
52  <developers>
53    <developer>
54      <name>Julien Le Dem</name>
55      <email>julien@twitter.com</email>
56    </developer>
57  </developers>
58
59  <distributionManagement>
60    <snapshotRepository>
61      <id>sonatype-nexus-snapshots</id>
62      <name>Sonatype OSS</name>
63      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
64    </snapshotRepository>
65    <repository>
66      <id>sonatype-nexus-staging</id>
67      <name>Nexus Release Repository</name>
68      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
69    </repository>
70  </distributionManagement>
71
72  <repositories>
73    <repository>
74      <id>sonatype-nexus-snapshots</id>
75      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
76      <releases>
77        <enabled>false</enabled>
78      </releases>
79      <snapshots>
80        <enabled>true</enabled>
81      </snapshots>
82     </repository>
83  </repositories>
84
85  <!-- this is needed for maven-thrift-plugin, would like to remove this.
86   see: https://issues.apache.org/jira/browse/THRIFT-1536  -->
87  <pluginRepositories>
88    <pluginRepository>
89      <id>Twitter public Maven repo</id>
90      <url>http://maven.twttr.com</url>
91    </pluginRepository>
92  </pluginRepositories>
93
94  <properties>
95    <targetJavaVersion>1.6</targetJavaVersion>
96    <maven.compiler.source>1.6</maven.compiler.source>
97    <maven.compiler.target>${targetJavaVersion}</maven.compiler.target>
98    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
99    <github.global.server>github</github.global.server>
100    <maven-jar-plugin.version>2.4</maven-jar-plugin.version>
101    <jackson.groupId>org.codehaus.jackson</jackson.groupId>
102    <jackson.version>1.9.11</jackson.version>
103    <jackson.package>org.codehaus.jackson</jackson.package>
104    <shade.prefix>parquet</shade.prefix>
105    <hadoop.version>1.1.0</hadoop.version>
106    <cascading.version>2.5.3</cascading.version>
107    <parquet.format.version>2.2.0-rc1</parquet.format.version>
108    <log4j.version>1.2.17</log4j.version>
109    <previous.version>1.5.0</previous.version>
110    <thrift.executable>thrift</thrift.executable>
111    <scala.version>2.10.4</scala.version>
112    <!-- scala.binary.version is used for projects that fetch dependencies that are in scala -->
113    <scala.binary.version>2.10</scala.binary.version>
114    <scala.maven.test.skip>false</scala.maven.test.skip>
115    <pig.version>0.11.1</pig.version>
116    <pig.classifier />
117    <thrift.version>0.7.0</thrift.version>
118  </properties>
119
120  <modules>
121    <module>parquet-avro</module>
122    <module>parquet-benchmarks</module>
123    <module>parquet-cascading</module>
124    <module>parquet-column</module>
125    <module>parquet-common</module>
126    <module>parquet-encoding</module>
127    <module>parquet-generator</module>
128    <module>parquet-hadoop</module>
129    <module>parquet-jackson</module>
130    <module>parquet-pig</module>
131    <module>parquet-pig-bundle</module>
132    <module>parquet-protobuf</module>
133    <module>parquet-scala</module>
134    <module>parquet-scrooge</module>
135    <module>parquet-thrift</module>
136    <module>parquet-hadoop-bundle</module>
137    <module>parquet-hive</module>
138    <module>parquet-hive-bundle</module>
139    <module>parquet-tools</module>
140  </modules>
141
142  <dependencies>
143    <dependency>
144      <groupId>junit</groupId>
145      <artifactId>junit</artifactId>
146      <version>4.10</version>
147      <scope>test</scope>
148    </dependency>
149    <dependency>
150      <groupId>org.easymock</groupId>
151      <artifactId>easymock</artifactId>
152      <version>3.2</version>
153      <scope>test</scope>
154    </dependency>
155    <dependency>
156      <groupId>commons-httpclient</groupId>
157      <artifactId>commons-httpclient</artifactId>
158      <version>3.0.1</version>
159      <scope>test</scope>
160    </dependency>
161  </dependencies>
162
163  <reporting>
164    <plugins>
165      <plugin>
166        <groupId>org.apache.maven.plugins</groupId>
167        <artifactId>maven-javadoc-plugin</artifactId>
168        <version>2.9</version>
169        <reportSets>
170          <reportSet><!-- by default, id = "default" -->
171            <reports><!-- select non-aggregate reports -->
172              <report>javadoc</report>
173              <report>test-javadoc</report>
174            </reports>
175          </reportSet>
176          <reportSet><!-- aggregate reportSet, to define in poms having modules -->
177            <id>aggregate</id>
178            <inherited>false</inherited><!-- don't run aggregate in child modules -->
179            <reports>
180              <report>aggregate</report>
181            </reports>
182          </reportSet>
183        </reportSets>
184      </plugin>
185      <plugin>
186        <groupId>org.codehaus.mojo</groupId>
187        <artifactId>cobertura-maven-plugin</artifactId>
188        <version>2.5.2</version>
189        <configuration>
190          <formats>
191            <format>html</format>
192          </formats>
193          <aggregate>true</aggregate>
194          <instrumentation>
195            <ignores>
196              <ignore>parquet.Log.*</ignore>
197              <ignore>java.lang.UnsupportedOperationException.*</ignore>
198            </ignores>
199            <excludes>
200              <exclude>parquet/Log.class</exclude>
201              <exclude>**/*Exception.class</exclude>
202              <exclude>parquet/example/**/*.class</exclude>
203            </excludes>
204          </instrumentation>
205        </configuration>
206      </plugin>
207    </plugins>
208  </reporting>
209
210  <build>
211    <pluginManagement>
212      <plugins>
213        <plugin>
214          <artifactId>maven-enforcer-plugin</artifactId>
215          <version>1.3.1</version>
216          <dependencies>
217            <dependency>
218              <groupId>org.semver</groupId>
219              <artifactId>enforcer-rule</artifactId>
220              <version>0.9.28</version>
221            </dependency>
222         </dependencies>
223         <executions>
224           <execution>
225             <id>check</id>
226             <phase>verify</phase>
227             <goals>
228               <goal>enforce</goal>
229             </goals>
230             <configuration>
231               <rules>
232                 <requireBackwardCompatibility implementation="org.semver.enforcer.RequireSemanticVersioningConformance">
233                   <dumpDetails>true</dumpDetails>
234                   <previousVersion>${previous.version}</previousVersion>
235                   <excludes>
236                     <exclude>parquet/filter2/**</exclude>
237                     <exclude>parquet/org/**</exclude>
238                     <exclude>parquet/column/**</exclude>
239                     <exclude>parquet/hadoop/ParquetInputSplit</exclude>
240                     <!-- temporary rules -->
241                     <exclude>parquet/io/api/Binary</exclude> <!-- false positive, added interfaces -->
242                     <exclude>parquet/hadoop/metadata/Canonicalizer</exclude> <!-- moved to different module -->
243                     <exclude>parquet/hadoop/metadata/ColumnPath</exclude> <!-- moved to different module, added methods -->
244                   </excludes>
245                 </requireBackwardCompatibility>
246               </rules>
247             </configuration>
248           </execution>
249         </executions>
250        </plugin>
251        <plugin>
252         <groupId>org.apache.maven.plugins</groupId>
253         <artifactId>maven-release-plugin</artifactId>
254         <version>2.1</version>
255         <configuration>
256          <mavenExecutorId>forked-path</mavenExecutorId>
257          <useReleaseProfile>false</useReleaseProfile>
258          <arguments>-Psonatype-oss-release</arguments>
259         </configuration>
260        </plugin>
261        <plugin>
262          <groupId>org.apache.maven.plugins</groupId>
263          <artifactId>maven-shade-plugin</artifactId>
264          <version>2.1</version>
265          <executions>
266            <execution>
267              <phase>package</phase>
268              <goals>
269                <goal>shade</goal>
270              </goals>
271              <configuration>
272                <minimizeJar>true</minimizeJar>
273                <artifactSet>
274                  <includes>
275                    <include>${jackson.groupId}:*</include>
276                    <include>it.unimi.dsi:fastutil</include>
277                  </includes>
278                </artifactSet>
279                <!-- Shade jackson but do not include any class. Let parquet-jackson handle this -->
280                <filters>
281                  <filter>
282                    <artifact>${jackson.groupId}:*</artifact>
283                    <excludes>
284                      <exclude>**</exclude>
285                    </excludes>
286                  </filter>
287                </filters>
288                <relocations>
289                  <relocation>
290                    <pattern>${jackson.package}</pattern>
291                    <shadedPattern>${shade.prefix}.${jackson.package}</shadedPattern>
292                  </relocation>
293                  <relocation>
294                    <pattern>it.unimi.dsi</pattern>
295                    <shadedPattern>${shade.prefix}.it.unimi.dsi</shadedPattern>
296                  </relocation>
297                </relocations>
298              </configuration>
299            </execution>
300          </executions>
301        </plugin>
302        <plugin>
303          <groupId>org.apache.maven.plugins</groupId>
304          <artifactId>maven-jar-plugin</artifactId>
305          <version>${maven-jar-plugin.version}</version>
306          <configuration>
307            <archive>
308              <manifestEntries>
309                <git-SHA-1>${buildNumber}</git-SHA-1>
310              </manifestEntries>
311            </archive>
312          </configuration>
313          <executions>
314            <execution>
315              <goals>
316                <goal>test-jar</goal>
317              </goals>
318            </execution>
319          </executions>
320        </plugin>
321      </plugins>
322    </pluginManagement>
323    <plugins>
324      <plugin>
325        <groupId>com.mycila.maven-license-plugin</groupId>
326        <artifactId>maven-license-plugin</artifactId>
327        <version>1.10.b1</version>
328        <configuration>
329          <header>src/license.txt</header>
330          <strictCheck>true</strictCheck>
331        </configuration>
332        <!--executions>
333          <execution>
334            <phase>test</phase>
335            <goals>
336              <goal>check</goal>
337            </goals>
338          </execution>
339        </executions-->
340      </plugin>
341      <plugin>
342        <!-- Override source and target from the ASF parent -->
343        <groupId>org.apache.maven.plugins</groupId>
344        <artifactId>maven-compiler-plugin</artifactId>
345        <configuration>
346          <argLine>-XX:MaxPermSize=256m</argLine>
347          <source>${maven.compiler.source}</source>
348          <target>${maven.compiler.target}</target>
349        </configuration>
350      </plugin>
351      <plugin>
352        <groupId>org.apache.maven.plugins</groupId>
353        <artifactId>maven-surefire-plugin</artifactId>
354        <version>2.10</version>
355        <configuration>
356          <argLine>-Xmx512m</argLine>
357          <excludes>
358            <exclude>**/benchmark/*.java</exclude>
359          </excludes>
360        </configuration>
361      </plugin>
362      <plugin>
363        <groupId>org.codehaus.mojo</groupId>
364        <artifactId>buildnumber-maven-plugin</artifactId>
365        <version>1.1</version>
366        <executions>
367          <execution>
368            <phase>validate</phase>
369            <goals>
370              <goal>create</goal>
371            </goals>
372         </execution>
373       </executions>
374      </plugin>
375      <plugin>
376        <groupId>org.apache.rat</groupId>
377        <artifactId>apache-rat-plugin</artifactId>
378        <executions>
379          <execution>
380            <phase>test</phase>
381            <goals>
382              <goal>check</goal>
383            </goals>
384          </execution>
385        </executions>
386        <configuration>
387          <excludes>
388            <exclude>**/*.parquet</exclude>
389            <exclude>**/*.avro</exclude>
390            <exclude>**/*.json</exclude>
391            <exclude>**/names.txt</exclude> <!-- parquet-cascading test data -->
392            <exclude>**/*.avsc</exclude>
393            <exclude>**/*.iml</exclude>
394            <exclude>**/*.log</exclude>
395            <exclude>**/*.md.vm</exclude>
396            <exclude>**/.classpath</exclude>
397            <exclude>**/.project</exclude>
398            <exclude>**/.settings/**</exclude>
399            <exclude>**/build/**</exclude>
400            <exclude>**/target/**</exclude>
401            <exclude>.git/**</exclude>
402            <exclude>.gitignore</exclude>
403            <exclude>.idea/**</exclude>
404            <exclude>*/jdiff/*.xml</exclude>
405            <exclude>.travis.yml</exclude>
406            <exclude>licenses/**</exclude>
407            <exclude>protobuf_install/**</exclude>
408            <exclude>thrift-0.7.0/**</exclude>
409            <exclude>thrift-0.7.0.tar.gz</exclude>
410            <exclude>**/dependency-reduced-pom.xml</exclude>
411          </excludes>
412        </configuration>
413      </plugin>
414    </plugins>
415  </build>
416
417  <profiles>
418    <profile>
419      <id>update-github-site</id>
420      <reporting>
421        <plugins>
422          <plugin>
423            <groupId>org.apache.maven.plugins</groupId>
424            <artifactId>maven-project-info-reports-plugin</artifactId>
425            <version>2.7</version>
426            <reportSets>
427              <reportSet>
428                <reports>
429                  <report>index</report>
430                  <report>mailing-list</report>
431                  <report>dependency-info</report>
432                  <report>project-team</report>
433                  <report>dependencies</report>
434                  <report>license</report>
435                  <report>scm</report>
436                </reports>
437              </reportSet>
438            </reportSets>
439          </plugin>
440        </plugins>
441      </reporting>
442      <distributionManagement>
443        <site>
444          <id>github-pages-site</id>
445          <name>Deployment through GitHub's site deployment plugin</name>
446          <url>site/${project.version}</url>
447        </site>
448      </distributionManagement>
449      <build>
450        <plugins>
451          <plugin>
452            <groupId>org.apache.maven.plugins</groupId>
453            <artifactId>maven-site-plugin</artifactId>
454            <version>3.3</version>
455            <configuration>
456              <skipDeploy>true</skipDeploy>
457            </configuration>
458          </plugin>
459          <plugin>
460            <groupId>com.github.github</groupId>
461            <artifactId>site-maven-plugin</artifactId>
462            <version>0.8</version>
463            <configuration>
464              <message>Creating site for ${project.version}</message>
465              <path>${project.distributionManagement.site.url}</path>
466              <merge>true</merge>
467            </configuration>
468            <executions>
469              <execution>
470                <id>github-site</id>
471                <goals>
472                  <goal>site</goal>
473                </goals>
474                <phase>site-deploy</phase>
475              </execution>
476            </executions>
477          </plugin>
478        </plugins>
479      </build>
480    </profile>
481    <profile>
482      <id>sonatype-oss-release</id>
483      <build>
484        <plugins>
485          <plugin>
486            <groupId>org.apache.maven.plugins</groupId>
487            <artifactId>maven-source-plugin</artifactId>
488            <version>2.1.2</version>
489            <executions>
490              <execution>
491                <id>attach-sources</id>
492                <goals>
493                  <goal>jar-no-fork</goal>
494                </goals>
495              </execution>
496            </executions>
497          </plugin>
498          <plugin>
499            <groupId>org.apache.maven.plugins</groupId>
500            <artifactId>maven-javadoc-plugin</artifactId>
501            <version>2.7</version>
502            <executions>
503              <execution>
504                <id>attach-javadocs</id>
505                <goals>
506                  <goal>jar</goal>
507                </goals>
508              </execution>
509            </executions>
510          </plugin>
511          <plugin>
512            <groupId>org.apache.maven.plugins</groupId>
513            <artifactId>maven-gpg-plugin</artifactId>
514            <version>1.1</version>
515            <executions>
516              <execution>
517                <id>sign-artifacts</id>
518                <phase>verify</phase>
519                <goals>
520                  <goal>sign</goal>
521                </goals>
522              </execution>
523            </executions>
524          </plugin>
525        </plugins>
526      </build>
527    </profile>
528
529    <profile>
530      <id>hadoop-2</id>
531      <activation>
532        <property>
533          <name>hadoop.profile</name>
534          <value>hadoop2</value>
535        </property>
536      </activation>
537      <properties>
538        <!-- test hadoop-1 with the same jars that were produced for default profile -->
539        <maven.main.skip>true</maven.main.skip>
540        <hadoop.version>2.3.0</hadoop.version>
541        <pig.version>0.13.0</pig.version>
542        <pig.classifier>h2</pig.classifier>
543      </properties>
544    </profile>
545    <profile>
546      <id>thrift9</id>
547      <properties>
548        <thrift.version>0.9.0</thrift.version>
549      </properties>
550    </profile>
551  </profiles>
552</project>
553