This is an automated email from the ASF dual-hosted git repository. khmarbaise pushed a commit to branch MSHADE-289 in repository https://gitbox.apache.org/repos/asf/maven-shade-plugin.git
commit b0730d5c149ec3a55caaebccd84b330941c8b5b6 Author: Juliano Julio Costa <[email protected]> AuthorDate: Wed Aug 8 15:30:16 2018 +1000 [MSHADE-289] - Maven Shade Plugin does not work under Java 10 o Updating ASM to 6.2 to prevent IllegalArgumentException o Adding integration test for Java 10 o Upgrade Jdependency to 2.0 and fixing another problem with malformed dependency. o Added configuraton for TLSv1.2 --- pom.xml | 11 +- .../invoker.properties | 19 ++++ src/it/shading-with-java-10-sources/pom.xml | 114 +++++++++++++++++++++ .../org/apache/maven/plugins/shade/its/App.java | 50 +++++++++ src/it/shading-with-java-10-sources/verify.groovy | 24 +++++ .../maven/plugins/shade/filter/MinijarFilter.java | 2 +- 6 files changed, 217 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 2b9e0dc..5818811 100644 --- a/pom.xml +++ b/pom.xml @@ -68,7 +68,7 @@ <mavenVersion>3.0</mavenVersion> <javaVersion>7</javaVersion> <currentVersion>${project.version}</currentVersion> - <asmVersion>6.0</asmVersion> + <asmVersion>6.2</asmVersion> </properties> <contributors> @@ -150,7 +150,7 @@ <dependency> <groupId>org.vafer</groupId> <artifactId>jdependency</artifactId> - <version>1.2</version> + <version>2.0</version> </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> @@ -219,6 +219,9 @@ <ignoreClasses> <ignoreClass>module-info</ignoreClass> </ignoreClasses> + <excludes> + <exclude>org.vafer:jdependency</exclude> + </excludes> </enforceBytecodeVersion> </rules> </configuration> @@ -269,6 +272,10 @@ <goal>clean</goal> <goal>install</goal> </goals> + <properties> + <!-- e.g. ensure that Java7 picks up TLSv1.2 when connecting with Central --> + <https.protocols>${https.protocols}</https.protocols> + </properties> </configuration> </plugin> </plugins> diff --git a/src/it/shading-with-java-10-sources/invoker.properties b/src/it/shading-with-java-10-sources/invoker.properties new file mode 100644 index 0000000..24c05c5 --- /dev/null +++ b/src/it/shading-with-java-10-sources/invoker.properties @@ -0,0 +1,19 @@ +# 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. + +invoker.java.version = 10+ +invoker.goals=clean verify diff --git a/src/it/shading-with-java-10-sources/pom.xml b/src/it/shading-with-java-10-sources/pom.xml new file mode 100644 index 0000000..849dbe8 --- /dev/null +++ b/src/it/shading-with-java-10-sources/pom.xml @@ -0,0 +1,114 @@ +<?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/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.apache.maven.plugins.shade.its</groupId> + <artifactId>shading-with-java-10-sources</artifactId> + <version>1.0-SNAPSHOT</version> + + <name>users-shader-impl</name> + + + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.7</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <pluginManagement> + <plugins> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.7.0</version> + <configuration> + <release>10</release> + </configuration> + </plugin> + </plugins> + </pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>@project.version@</version> + <dependencies> + <dependency> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>@project.version@</version> + <classifier>tests</classifier> + </dependency> + </dependencies> + <executions> + <execution> + <id>create-shaded-artifact</id> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <shadedArtifactAttached>true</shadedArtifactAttached> + <shadedClassifierName>shaded</shadedClassifierName> + <createDependencyReducedPom>false</createDependencyReducedPom> + <relocations> + <relocation> + <pattern>org.apache.maven.plugins.shade.its</pattern> + <shadedPattern>hidden</shadedPattern> + </relocation> + </relocations> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <version>1.6.0</version> + <executions> + <execution> + <id>run</id> + <phase>verify</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <executable>java</executable> + <arguments> + <argument>-classpath</argument> + <argument>${project.build.directory}/shading-with-java-10-sources-1.0-SNAPSHOT-shaded.jar </argument> + <argument>hidden.App</argument> + </arguments> + </configuration> + </execution> + </executions> + </plugin> + + </plugins> + </build> +</project> diff --git a/src/it/shading-with-java-10-sources/src/main/java/org/apache/maven/plugins/shade/its/App.java b/src/it/shading-with-java-10-sources/src/main/java/org/apache/maven/plugins/shade/its/App.java new file mode 100644 index 0000000..a92156e --- /dev/null +++ b/src/it/shading-with-java-10-sources/src/main/java/org/apache/maven/plugins/shade/its/App.java @@ -0,0 +1,50 @@ +package org.apache.maven.plugins.shade.its; + +/* + * 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. + */ + + +/** + * Hello world! + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "=== RunnableTest ===" ); + + // Anonymous Runnable + Runnable r1 = new Runnable() + { + + @Override + public void run() + { + System.out.println( "Hello world one!" ); + } + }; + + // Lambda Runnable + Runnable r2 = () -> System.out.println( "Hello world two!" ); + + // Run em! + r1.run(); + r2.run(); + } +} diff --git a/src/it/shading-with-java-10-sources/verify.groovy b/src/it/shading-with-java-10-sources/verify.groovy new file mode 100644 index 0000000..453e8bd --- /dev/null +++ b/src/it/shading-with-java-10-sources/verify.groovy @@ -0,0 +1,24 @@ +/* + * 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. + */ +assert new File(basedir, 'build.log').exists(); + +content = new File(basedir, 'build.log').text; +assert content.contains( '=== RunnableTest ==='); +assert content.contains( 'Hello world one!'); +assert content.contains( 'Hello world two!'); diff --git a/src/main/java/org/apache/maven/plugins/shade/filter/MinijarFilter.java b/src/main/java/org/apache/maven/plugins/shade/filter/MinijarFilter.java index c3ec35b..f4469c1 100644 --- a/src/main/java/org/apache/maven/plugins/shade/filter/MinijarFilter.java +++ b/src/main/java/org/apache/maven/plugins/shade/filter/MinijarFilter.java @@ -135,7 +135,7 @@ public class MinijarFilter ioe.initCause( e ); throw ioe; } - catch ( ArrayIndexOutOfBoundsException e ) + catch ( ArrayIndexOutOfBoundsException | IllegalArgumentException e ) { // trap ArrayIndexOutOfBoundsExceptions caused by malformed dependency classes (MSHADE-107) log.warn( dependency.toString()
