This is an automated email from the git hooks/post-receive script. ebourg-guest pushed a commit to branch master in repository maven-repo-helper.
commit 4b49a7c2b664db0b723f69e18bae7e5c9e44c08a Author: Emmanuel Bourg <[email protected]> Date: Mon Jun 30 13:23:30 2014 +0200 Parse and transform the module elements declared in profiles --- debian/changelog | 6 + src/main/java/org/debian/maven/repo/POMReader.java | 3 +- .../java/org/debian/maven/repo/POMTransformer.java | 4 +- .../java/org/debian/maven/repo/POMReaderTest.java | 22 ++ .../org/debian/maven/repo/POMTransformerTest.java | 18 ++ src/test/resources/tika.pom | 231 +++++++++++++++++++++ 6 files changed, 280 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index a520653..ae17af0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +maven-repo-helper (1.8.8) unstable; urgency=medium + + * Parse and transform the module elements declared in profiles + + -- Emmanuel Bourg <[email protected]> Mon, 30 Jun 2014 12:20:52 +0200 + maven-repo-helper (1.8.7) unstable; urgency=medium * Fixed the parsing of the systemPath element (Closes: #740000) diff --git a/src/main/java/org/debian/maven/repo/POMReader.java b/src/main/java/org/debian/maven/repo/POMReader.java index 870f013..59a3092 100644 --- a/src/main/java/org/debian/maven/repo/POMReader.java +++ b/src/main/java/org/debian/maven/repo/POMReader.java @@ -124,8 +124,7 @@ public class POMReader { } else if ("systemPath".equals(element)) { currentDependency.setSystemPath(value); } - } else if (path.size() == 3 && "modules".equals(path.parent(1))) { - // we're not interested in the modules section inside a profiles section + } else if ("modules".equals(path.parent(1)) && "module".equals(element)) { modules.add(value); } else if (path.size() == 3 && "parent".equals(path.parent(1))) { if ("groupId".equals(element)) { diff --git a/src/main/java/org/debian/maven/repo/POMTransformer.java b/src/main/java/org/debian/maven/repo/POMTransformer.java index 192bd8c..64cd49d 100644 --- a/src/main/java/org/debian/maven/repo/POMTransformer.java +++ b/src/main/java/org/debian/maven/repo/POMTransformer.java @@ -341,12 +341,12 @@ public class POMTransformer extends POMReader { continue; } } - if (path.matches("/project/modules/module")) { + if (path.matches("/project/modules/module") || path.matches("/project/profiles/profile/modules/module")) { String module = info.getModules().get(moduleDependencyIndex); ++moduleDependencyIndex; if (!acceptModule(module, originalPom)) { if (verbose) { - System.out.println("Ignore module " + module + " in transformed POM"); + System.out.println("Ignore module " + module + " in transformed POM"); } inIgnoredElement++; continue; diff --git a/src/test/java/org/debian/maven/repo/POMReaderTest.java b/src/test/java/org/debian/maven/repo/POMReaderTest.java index fd25324..aacd7e0 100644 --- a/src/test/java/org/debian/maven/repo/POMReaderTest.java +++ b/src/test/java/org/debian/maven/repo/POMReaderTest.java @@ -404,4 +404,26 @@ public class POMReaderTest { assertFalse(path.matches("/c/d")); assertFalse(path.matches("/d")); } + + /** + * Ensures all modules are properly parsed, including those defined in a profile. + */ + @Test + public void testReadModules() throws Exception { + POMReader reader = new POMReader(); + POMInfo info = reader.readPom(tmpDir.usePom("tika.pom")); + + assertNotNull(info); + assertTrue("Module tika-parent not found", info.getModules().contains("tika-parent")); + assertTrue("Module tika-core not found", info.getModules().contains("tika-core")); + assertTrue("Module tika-parsers not found", info.getModules().contains("tika-parsers")); + assertTrue("Module tika-xmp not found", info.getModules().contains("tika-xmp")); + assertTrue("Module tika-serialization not found", info.getModules().contains("tika-serialization")); + assertTrue("Module tika-app not found", info.getModules().contains("tika-app")); + assertTrue("Module tika-bundle not found", info.getModules().contains("tika-bundle")); + assertTrue("Module tika-server not found", info.getModules().contains("tika-server")); + assertTrue("Module tika-translate not found", info.getModules().contains("tika-translate")); + assertTrue("Module tika-java7 not found", info.getModules().contains("tika-java7")); + assertEquals("Number of modules", 10, info.getModules().size()); + } } diff --git a/src/test/java/org/debian/maven/repo/POMTransformerTest.java b/src/test/java/org/debian/maven/repo/POMTransformerTest.java index 995105a..96b4d1f 100644 --- a/src/test/java/org/debian/maven/repo/POMTransformerTest.java +++ b/src/test/java/org/debian/maven/repo/POMTransformerTest.java @@ -22,6 +22,7 @@ import java.io.IOException; import org.custommonkey.xmlunit.XMLUnit; import org.debian.maven.TemporaryPomFolder; +import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -285,4 +286,21 @@ public class POMTransformerTest { private void assertCleanedXMLEqual() throws SAXException, IOException { assertXMLEqual(tmpDir.read(basename(tmpDir.pomInUse)+".transformed"), tmpDir.read(tmpDir.updatedPom())); } + + @Test + public void testTransformModules() throws Exception { + File pom = tmpDir.usePom("tika.pom"); + instance.addIgnoreModule(pom, "tika-xmp"); + instance.addIgnoreModule(pom, "tika-server"); + instance.addIgnoreModule(pom, "tika-java7"); + instance.getRulesFiles().addDefaultRules(); + instance.transformPom(pom, tmpDir.updatedPom(), true, true, false, false, null, null); + + POMReader reader = new POMReader(); + POMInfo info = reader.readPom(tmpDir.read(tmpDir.updatedPom())); + Assert.assertFalse("Module tika-xmp hasn't been filtered", info.getModules().contains("tika-xmp")); + Assert.assertFalse("Module tika-server hasn't been filtered", info.getModules().contains("tika-server")); + Assert.assertFalse("Module tika-java7 hasn't been filtered", info.getModules().contains("tika-java7")); + assertEquals("Number of modules", 7, info.getModules().size()); + } } diff --git a/src/test/resources/tika.pom b/src/test/resources/tika.pom new file mode 100644 index 0000000..c156ccb --- /dev/null +++ b/src/test/resources/tika.pom @@ -0,0 +1,231 @@ +<?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 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>org.apache.tika</groupId> + <artifactId>tika-parent</artifactId> + <version>1.6-SNAPSHOT</version> + <relativePath>tika-parent/pom.xml</relativePath> + </parent> + + <artifactId>tika</artifactId> + <packaging>pom</packaging> + <name>Apache Tika</name> + <url>http://tika.apache.org</url> + + <scm> + <connection> + scm:svn:http://svn.apache.org/repos/asf/tika/trunk + </connection> + <developerConnection> + scm:svn:https://svn.apache.org/repos/asf/tika/trunk + </developerConnection> + <url>http://svn.apache.org/viewvc/tika/trunk</url> + </scm> + + <modules> + <module>tika-parent</module> + <module>tika-core</module> + <module>tika-parsers</module> + <module>tika-xmp</module> + <module>tika-serialization</module> + <module>tika-app</module> + <module>tika-bundle</module> + <module>tika-server</module> + <module>tika-translate</module> + </modules> + + <build> + <plugins> + <plugin> + <artifactId>maven-deploy-plugin</artifactId> + <configuration> + <skip>true</skip> <!-- No need to deploy the reactor --> + </configuration> + </plugin> + <plugin> + <artifactId>maven-site-plugin</artifactId> + <configuration> + <templateDirectory>src/site</templateDirectory> + <template>site.vm</template> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.rat</groupId> + <artifactId>apache-rat-plugin</artifactId> + <configuration> + <excludes> + <exclude>.*/**</exclude> + <exclude>CHANGES.txt</exclude> + <exclude>tika-dotnet/AssemblyInfo.cs</exclude> + <exclude>tika-dotnet/Tika.csproj</exclude> + <exclude>tika-dotnet/Tika.sln</exclude> + <exclude>tika-dotnet/Tika.sln.cache</exclude> + <exclude>tika-dotnet/obj/**</exclude> + <exclude>tika-dotnet/target/**</exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </build> + + <profiles> + <profile> + <id>apache-release</id> + <properties> + <username>${user.name}</username> + </properties> + <build> + <plugins> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <executions> + <execution> + <id>src</id> + <goals> + <goal>single</goal> + </goals> + <phase>package</phase> + <configuration> + <descriptors> + <descriptor>assembly.xml</descriptor> + </descriptors> + </configuration> + </execution> + <execution> + <id>source-release-assembly</id> + <configuration> + <skipAssembly>true</skipAssembly> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-antrun-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>run</goal> + </goals> + <phase>deploy</phase> + <configuration> + <tasks> + <mkdir dir="${basedir}/target/${project.version}" /> + <copy todir="${basedir}/target/${project.version}" flatten="true"> + <fileset dir="${basedir}"> + <include name="CHANGES.txt" /> + <include name="target/*-src.zip*" /> + <include name="tika-app/target/*-${project.version}.jar*" /> + </fileset> + </copy> + <checksum algorithm="MD5" fileext=".md5"> + <fileset dir="${basedir}/target/${project.version}"> + <include name="*.zip" /> + <include name="*.?ar" /> + </fileset> + </checksum> + <checksum algorithm="SHA1" fileext=".sha"> + <fileset dir="${basedir}/target/${project.version}"> + <include name="*.zip" /> + <include name="*.?ar" /> + </fileset> + </checksum> + <checksum file="${basedir}/target/${project.version}/tika-${project.version}-src.zip" algorithm="SHA1" property="checksum" /> + <echo file="${basedir}/target/vote.txt"> +From: ${username}@apache.org +To: [email protected] +Subject: [VOTE] Release Apache Tika ${project.version} + +A candidate for the Tika ${project.version} release is available at: + + http://people.apache.org/~${username}/tika/${project.version}/ + +The release candidate is a zip archive of the sources in: + + http://svn.apache.org/repos/asf/tika/tags/${project.version}/ + +The SHA1 checksum of the archive is ${checksum}. + +Please vote on releasing this package as Apache Tika ${project.version}. +The vote is open for the next 72 hours and passes if a majority of at +least three +1 Tika PMC votes are cast. + + [ ] +1 Release this package as Apache Tika ${project.version} + [ ] -1 Do not release this package because...${line.separator} + </echo> + <echo /> + <echo> +The release candidate has been prepared in: + + ${basedir}/target/${project.version} + +Please deploy it to people.apache.org like this: + + scp -r ${basedir}/target/${project.version} people.apache.org:public_html/tika/ + +A release vote template has been generated for you: + + file://${basedir}/target/vote.txt + </echo> + <echo /> + </tasks> + </configuration> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>org.apache.ant</groupId> + <artifactId>ant-nodeps</artifactId> + <version>1.8.1</version> + </dependency> + </dependencies> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>java7</id> + <activation> + <jdk>[1.7,]</jdk> + </activation> + <modules> + <module>tika-java7</module> + </modules> + </profile> + </profiles> + + <description>The Apache Tika™ toolkit detects and extracts metadata and structured text content from various documents using existing parser libraries. </description> + <organization> + <name>The Apache Software Foundation</name> + <url>http://www.apache.org</url> + </organization> + <issueManagement> + <system>JIRA</system> + <url>https://issues.apache.org/jira/browse/TIKA</url> + </issueManagement> + <ciManagement> + <system>Jenkins</system> + <url>https://builds.apache.org/job/Tika-trunk/</url> + </ciManagement> +</project> -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/maven-repo-helper.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

