You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2017/08/04 15:40:19 UTC
svn commit: r1804137 - in /maven/plugins/trunk/maven-dependency-plugin/src:
it/projects/mdep-578_display-reason-invalid-module/
main/java/org/apache/maven/plugins/dependency/resolvers/
main/java/org/apache/maven/plugins/dependency/utils/ test/java/org/...
Author: rfscholte
Date: Fri Aug 4 15:40:19 2017
New Revision: 1804137
URL: http://svn.apache.org/viewvc?rev=1804137&view=rev
Log:
[MDEP-578] Add message in case module name cannot be extracted from jar.
Added:
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/invoker.properties
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/pom.xml
maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/verify.groovy
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/resolvers/ResolveDependenciesMojoTest.java
Modified:
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/resolvers/ResolveDependenciesMojo.java
maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/utils/DependencyStatusSets.java
maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/utils/TestDependencyStatusSets.java
Added: maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/invoker.properties
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/invoker.properties?rev=1804137&view=auto
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/invoker.properties (added)
+++ maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/invoker.properties Fri Aug 4 15:40:19 2017
@@ -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 = 9+
+invoker.goals = dependency:resolve
Added: maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/pom.xml?rev=1804137&view=auto
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/pom.xml (added)
+++ maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/pom.xml Fri Aug 4 15:40:19 2017
@@ -0,0 +1,45 @@
+<?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.its.dependency</groupId>
+ <artifactId>mdep-578</artifactId>
+ <version>1.0</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>jdom</groupId>
+ <artifactId>jdom</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jta_1.1_spec</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-servlet_2.4_spec</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+ </dependencies>
+</project>
Added: maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/verify.groovy
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/verify.groovy?rev=1804137&view=auto
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/verify.groovy (added)
+++ maven/plugins/trunk/maven-dependency-plugin/src/it/projects/mdep-578_display-reason-invalid-module/verify.groovy Fri Aug 4 15:40:19 2017
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+File file = new File( basedir, "build.log" );
+assert file.exists();
+
+String buildLog = file.getText( "UTF-8" );
+
+// Cause message is JDK specific and can change over time
+
+// JDOMAbout$Author.class found in top-level directory (unnamed package not allowed in module)
+assert buildLog.contains( "Can't get module name from jdom-1.0.jar: " );
+
+// geronimo.servlet.2.4.spec: Invalid module name: '2' is not a Java identifier
+assert buildLog.contains( "Can't get module name from geronimo-servlet_2.4_spec-1.1.1.jar: " );
+
+// geronimo.jta.1.1.spec: Invalid module name: '1' is not a Java identifier
+assert buildLog.contains( "Can't get module name from geronimo-jta_1.1_spec-1.1.jar: " );
+
+return true;
Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/resolvers/ResolveDependenciesMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/resolvers/ResolveDependenciesMojo.java?rev=1804137&r1=1804136&r2=1804137&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/resolvers/ResolveDependenciesMojo.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/resolvers/ResolveDependenciesMojo.java Fri Aug 4 15:40:19 2017
@@ -19,6 +19,8 @@ package org.apache.maven.plugins.depende
* under the License.
*/
+import org.apache.maven.artifact.Artifact;
+
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugins.dependency.utils.DependencyStatusSets;
import org.apache.maven.plugins.dependency.utils.DependencyUtil;
@@ -30,7 +32,15 @@ import org.apache.maven.plugins.annotati
import org.apache.maven.plugins.annotations.ResolutionScope;
import org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter;
+import java.io.File;
import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
/**
* Goal that resolves the project dependencies from the repository.
@@ -88,7 +98,7 @@ public class ResolveDependenciesMojo
// get sets of dependencies
results = this.getDependencySets( false, includeParents );
- String output = results.getOutput( outputAbsoluteArtifactFilename, outputScope, sort );
+ String output = getOutput( outputAbsoluteArtifactFilename, outputScope, sort );
try
{
if ( outputFile == null )
@@ -119,4 +129,178 @@ public class ResolveDependenciesMojo
{
return new ResolveFileFilter( new SourcesFileMarkerHandler( this.markersDirectory ) );
}
+
+ public String getOutput( boolean outputAbsoluteArtifactFilename, boolean outputScope, boolean sort )
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.append( "\n" );
+ sb.append( "The following files have been resolved:\n" );
+ if ( results.getResolvedDependencies() == null || results.getResolvedDependencies().isEmpty() )
+ {
+ sb.append( " none\n" );
+ }
+ else
+ {
+ sb.append( buildArtifactListOutput( results.getResolvedDependencies(), outputAbsoluteArtifactFilename,
+ outputScope, sort ) );
+ }
+
+ if ( results.getSkippedDependencies() != null && !results.getSkippedDependencies().isEmpty() )
+ {
+ sb.append( "\n" );
+ sb.append( "The following files were skipped:\n" );
+ Set<Artifact> skippedDependencies = new LinkedHashSet<Artifact>();
+ skippedDependencies.addAll( results.getSkippedDependencies() );
+ sb.append( buildArtifactListOutput( skippedDependencies, outputAbsoluteArtifactFilename,
+ outputScope, sort ) );
+ }
+
+ if ( results.getUnResolvedDependencies() != null && !results.getUnResolvedDependencies().isEmpty() )
+ {
+ sb.append( "\n" );
+ sb.append( "The following files have NOT been resolved:\n" );
+ Set<Artifact> unResolvedDependencies = new LinkedHashSet<Artifact>();
+ unResolvedDependencies.addAll( results.getUnResolvedDependencies() );
+ sb.append( buildArtifactListOutput( unResolvedDependencies, outputAbsoluteArtifactFilename,
+ outputScope, sort ) );
+ }
+ sb.append( "\n" );
+
+ return sb.toString();
+ }
+
+ private StringBuilder buildArtifactListOutput( Set<Artifact> artifacts, boolean outputAbsoluteArtifactFilename,
+ boolean outputScope, boolean sort )
+ {
+ StringBuilder sb = new StringBuilder();
+ List<String> artifactStringList = new ArrayList<String>();
+ for ( Artifact artifact : artifacts )
+ {
+ String artifactFilename = null;
+ if ( outputAbsoluteArtifactFilename )
+ {
+ try
+ {
+ // we want to print the absolute file name here
+ artifactFilename = artifact.getFile().getAbsoluteFile().getPath();
+ }
+ catch ( NullPointerException e )
+ {
+ // ignore the null pointer, we'll output a null string
+ artifactFilename = null;
+ }
+ }
+
+ String id = outputScope ? artifact.toString() : artifact.getId();
+ String optionalMarker = "";
+ if ( outputScope && artifact.isOptional() )
+ {
+ optionalMarker = " (optional) ";
+ }
+
+ String moduleNameMarker = "";
+
+ // dependencies:collect won't download jars
+ if ( artifact.getFile() != null )
+ {
+ ModuleDescriptor moduleDescriptor = getModuleDescriptor( artifact.getFile() );
+ if ( moduleDescriptor != null )
+ {
+ moduleNameMarker = " -- module " + moduleDescriptor.name;
+
+ if ( moduleDescriptor.automatic )
+ {
+ moduleNameMarker += " (auto)";
+ }
+ }
+ }
+
+ artifactStringList.add( " " + id + ( outputAbsoluteArtifactFilename ? ":" + artifactFilename : "" )
+ + optionalMarker
+ + moduleNameMarker
+ + "\n" );
+ }
+ if ( sort )
+ {
+ Collections.sort( artifactStringList );
+ }
+ for ( String artifactString : artifactStringList )
+ {
+ sb.append( artifactString );
+ }
+ return sb;
+ }
+
+ private ModuleDescriptor getModuleDescriptor( File artifactFile )
+ {
+ ModuleDescriptor moduleDescriptor = null;
+ try
+ {
+ // Use Java9 code to get moduleName, don't try to do it better with own implementation
+ Class<?> moduleFinderClass = Class.forName( "java.lang.module.ModuleFinder" );
+
+ java.nio.file.Path path = artifactFile.toPath();
+
+ Method ofMethod = moduleFinderClass.getMethod( "of", java.nio.file.Path[].class );
+ Object moduleFinderInstance = ofMethod.invoke( null, new Object[] { new java.nio.file.Path[] { path } } );
+
+ Method findAllMethod = moduleFinderClass.getMethod( "findAll" );
+ @SuppressWarnings( "unchecked" )
+ Set<Object> moduleReferences = (Set<Object>) findAllMethod.invoke( moduleFinderInstance );
+
+ // moduleReferences can be empty when referring to target/classes without module-info.class
+ if ( !moduleReferences.isEmpty() )
+ {
+ Object moduleReference = moduleReferences.iterator().next();
+ Method descriptorMethod = moduleReference.getClass().getMethod( "descriptor" );
+ Object moduleDescriptorInstance = descriptorMethod.invoke( moduleReference );
+
+ Method nameMethod = moduleDescriptorInstance.getClass().getMethod( "name" );
+ String name = (String) nameMethod.invoke( moduleDescriptorInstance );
+
+ moduleDescriptor = new ModuleDescriptor();
+ moduleDescriptor.name = name;
+
+ Method isAutomaticMethod = moduleDescriptorInstance.getClass().getMethod( "isAutomatic" );
+ moduleDescriptor.automatic = (Boolean) isAutomaticMethod.invoke( moduleDescriptorInstance );
+ }
+ }
+ catch ( ClassNotFoundException e )
+ {
+ // do nothing
+ }
+ catch ( NoSuchMethodException e )
+ {
+ e.printStackTrace();
+ }
+ catch ( SecurityException e )
+ {
+ // do nothing
+ }
+ catch ( IllegalAccessException e )
+ {
+ // do nothing
+ }
+ catch ( IllegalArgumentException e )
+ {
+ // do nothing
+ }
+ catch ( InvocationTargetException e )
+ {
+ Throwable cause = e.getCause();
+ while ( cause.getCause() != null )
+ {
+ cause = cause.getCause();
+ }
+ getLog().info( "Can't extract module name from " + artifactFile.getName() + ": " + cause.getMessage() );
+ }
+ return moduleDescriptor;
+ }
+
+ private class ModuleDescriptor
+ {
+ String name;
+
+ boolean automatic = true;
+ }
}
Modified: maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/utils/DependencyStatusSets.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/utils/DependencyStatusSets.java?rev=1804137&r1=1804136&r2=1804137&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/utils/DependencyStatusSets.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/main/java/org/apache/maven/plugins/dependency/utils/DependencyStatusSets.java Fri Aug 4 15:40:19 2017
@@ -19,18 +19,7 @@ package org.apache.maven.plugins.depende
* under the License.
*/
-/**
- *
- */
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.LinkedHashSet;
-import java.util.List;
import java.util.Set;
import org.apache.maven.artifact.Artifact;
@@ -41,7 +30,6 @@ import org.apache.maven.artifact.Artifac
*/
public class DependencyStatusSets
{
-
Set<Artifact> resolvedDependencies = null;
Set<Artifact> unResolvedDependencies = null;
@@ -140,184 +128,4 @@ public class DependencyStatusSets
this.unResolvedDependencies = null;
}
}
-
- public String getOutput( boolean outputAbsoluteArtifactFilename )
- {
- return getOutput( outputAbsoluteArtifactFilename, true );
- }
-
- public String getOutput( boolean outputAbsoluteArtifactFilename, boolean outputScope )
- {
- return getOutput( outputAbsoluteArtifactFilename, outputScope, false );
- }
-
- public String getOutput( boolean outputAbsoluteArtifactFilename, boolean outputScope, boolean sort )
- {
- StringBuilder sb = new StringBuilder();
- sb.append( "\n" );
- sb.append( "The following files have been resolved:\n" );
- if ( this.resolvedDependencies == null || this.resolvedDependencies.isEmpty() )
- {
- sb.append( " none\n" );
- }
- else
- {
- sb.append( buildArtifactListOutput( resolvedDependencies, outputAbsoluteArtifactFilename,
- outputScope, sort ) );
- }
-
- if ( this.skippedDependencies != null && !this.skippedDependencies.isEmpty() )
- {
- sb.append( "\n" );
- sb.append( "The following files were skipped:\n" );
- Set<Artifact> skippedDependencies = new LinkedHashSet<Artifact>();
- skippedDependencies.addAll( this.skippedDependencies );
- sb.append( buildArtifactListOutput( skippedDependencies, outputAbsoluteArtifactFilename,
- outputScope, sort ) );
- }
-
- if ( this.unResolvedDependencies != null && !this.unResolvedDependencies.isEmpty() )
- {
- sb.append( "\n" );
- sb.append( "The following files have NOT been resolved:\n" );
- Set<Artifact> unResolvedDependencies = new LinkedHashSet<Artifact>();
- unResolvedDependencies.addAll( this.unResolvedDependencies );
- sb.append( buildArtifactListOutput( unResolvedDependencies, outputAbsoluteArtifactFilename,
- outputScope, sort ) );
- }
- sb.append( "\n" );
-
- return sb.toString();
- }
-
- private StringBuilder buildArtifactListOutput( Set<Artifact> artifacts, boolean outputAbsoluteArtifactFilename,
- boolean outputScope, boolean sort )
- {
- StringBuilder sb = new StringBuilder();
- List<String> artifactStringList = new ArrayList<String>();
- for ( Artifact artifact : artifacts )
- {
- String artifactFilename = null;
- if ( outputAbsoluteArtifactFilename )
- {
- try
- {
- // we want to print the absolute file name here
- artifactFilename = artifact.getFile().getAbsoluteFile().getPath();
- }
- catch ( NullPointerException e )
- {
- // ignore the null pointer, we'll output a null string
- artifactFilename = null;
- }
- }
-
- String id = outputScope ? artifact.toString() : artifact.getId();
- String optionalMarker = "";
- if ( outputScope && artifact.isOptional() )
- {
- optionalMarker = " (optional) ";
- }
-
- String moduleNameMarker = "";
-
- // dependencies:collect won't download jars
- if ( artifact.getFile() != null )
- {
- ModuleDescriptor moduleDescriptor = getModuleDescriptor( artifact.getFile() );
- if ( moduleDescriptor != null )
- {
- moduleNameMarker = " -- module " + moduleDescriptor.name;
-
- if ( moduleDescriptor.automatic )
- {
- moduleNameMarker += " (auto)";
- }
- }
- }
-
- artifactStringList.add( " " + id + ( outputAbsoluteArtifactFilename ? ":" + artifactFilename : "" )
- + optionalMarker
- + moduleNameMarker
- + "\n" );
- }
- if ( sort )
- {
- Collections.sort( artifactStringList );
- }
- for ( String artifactString : artifactStringList )
- {
- sb.append( artifactString );
- }
- return sb;
- }
-
- private ModuleDescriptor getModuleDescriptor( File artifactFile )
- {
- ModuleDescriptor moduleDescriptor = null;
- try
- {
- // Use Java9 code to get moduleName, don't try to do it better with own implementation
- Class<?> moduleFinderClass = Class.forName( "java.lang.module.ModuleFinder" );
-
- java.nio.file.Path path = artifactFile.toPath();
-
- Method ofMethod = moduleFinderClass.getMethod( "of", java.nio.file.Path[].class );
- Object moduleFinderInstance = ofMethod.invoke( null, new Object[] { new java.nio.file.Path[] { path } } );
-
- Method findAllMethod = moduleFinderClass.getMethod( "findAll" );
- @SuppressWarnings( "unchecked" )
- Set<Object> moduleReferences = (Set<Object>) findAllMethod.invoke( moduleFinderInstance );
-
- // moduleReferences can be empty when referring to target/classes without module-info.class
- if ( !moduleReferences.isEmpty() )
- {
- Object moduleReference = moduleReferences.iterator().next();
- Method descriptorMethod = moduleReference.getClass().getMethod( "descriptor" );
- Object moduleDescriptorInstance = descriptorMethod.invoke( moduleReference );
-
- Method nameMethod = moduleDescriptorInstance.getClass().getMethod( "name" );
- String name = (String) nameMethod.invoke( moduleDescriptorInstance );
-
- moduleDescriptor = new ModuleDescriptor();
- moduleDescriptor.name = name;
-
- Method isAutomaticMethod = moduleDescriptorInstance.getClass().getMethod( "isAutomatic" );
- moduleDescriptor.automatic = (Boolean) isAutomaticMethod.invoke( moduleDescriptorInstance );
- }
- }
- catch ( ClassNotFoundException e )
- {
- // do nothing
- }
- catch ( NoSuchMethodException e )
- {
- e.printStackTrace();
- }
- catch ( SecurityException e )
- {
- // do nothing
- }
- catch ( IllegalAccessException e )
- {
- // do nothing
- }
- catch ( IllegalArgumentException e )
- {
- // do nothing
- }
- catch ( InvocationTargetException e )
- {
- // do nothing
- }
- return moduleDescriptor;
- }
-
- private class ModuleDescriptor
- {
- String name;
-
- boolean automatic = true;
- }
-
}
Added: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/resolvers/ResolveDependenciesMojoTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/resolvers/ResolveDependenciesMojoTest.java?rev=1804137&view=auto
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/resolvers/ResolveDependenciesMojoTest.java (added)
+++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/resolvers/ResolveDependenciesMojoTest.java Fri Aug 4 15:40:19 2017
@@ -0,0 +1,104 @@
+package org.apache.maven.plugins.dependency.resolvers;
+
+/*
+ * 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.
+ */
+
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugins.dependency.AbstractDependencyMojoTestCase;
+import org.apache.maven.plugins.dependency.utils.DependencyStatusSets;
+
+public class ResolveDependenciesMojoTest extends AbstractDependencyMojoTestCase
+{
+ protected void setUp()
+ throws Exception
+ {
+ // required for mojo lookups to work
+ super.setUp( "dss", true );
+ }
+
+ public void testDependencyStatusLog()
+ throws IOException
+ {
+ Set<Artifact> artifacts = this.stubFactory.getMixedArtifacts();
+ doTestDependencyStatusLog( artifacts );
+ }
+
+ public void testDependencyStatusLogNullFiles()
+ throws IOException
+ {
+ this.stubFactory.setCreateFiles( false );
+ Set<Artifact> artifacts = this.stubFactory.getMixedArtifacts();
+ doTestDependencyStatusLog( artifacts );
+ }
+
+ public void testDependencyStatusEmptySet()
+ {
+ doTestDependencyStatusLog( new HashSet<Artifact>() );
+ }
+
+ public void doTestDependencyStatusLog( Set<Artifact> artifacts )
+ {
+ // TODO: implement logger to check correct output
+ // this test is just looking for unexpected exceptions.
+
+ ResolveDependenciesMojo mojo = newMojo( new DependencyStatusSets() );
+ mojo.getOutput( false, true, false );
+ mojo.getOutput( true, true, false );
+
+ mojo = newMojo( new DependencyStatusSets( artifacts, null, null ) );
+ mojo.getOutput( false, true, false );
+ mojo.getOutput( true, true, false );
+
+ mojo = newMojo( new DependencyStatusSets( null, artifacts, null ) );
+ mojo.getOutput( false, true, false );
+ mojo.getOutput( true, true, false );
+
+ mojo = newMojo( new DependencyStatusSets( null, null, artifacts ) );
+ mojo.getOutput( false, true, false );
+ mojo.getOutput( true, true, false );
+
+ mojo = newMojo( new DependencyStatusSets( artifacts, artifacts, null ) );
+ mojo.getOutput( false, true, false );
+ mojo.getOutput( true, true, false );
+
+ mojo = newMojo( new DependencyStatusSets( null, artifacts, artifacts ) );
+ mojo.getOutput( false, true, false );
+ mojo.getOutput( true, true, false );
+
+ mojo = newMojo( new DependencyStatusSets( artifacts, null, artifacts ) );
+ mojo.getOutput( false, true, false );
+ mojo.getOutput( true, true, false );
+
+ mojo = newMojo( new DependencyStatusSets( artifacts, artifacts, artifacts ) );
+ mojo.getOutput( false, true, false );
+ mojo.getOutput( true, true, false );
+ mojo.getOutput( false, false, false );
+ mojo.getOutput( true, false, false );
+ }
+
+ private ResolveDependenciesMojo newMojo( final DependencyStatusSets dss ) {
+ ResolveDependenciesMojo mojo = new ResolveDependenciesMojo();
+ mojo.results = dss;
+ return mojo;
+ }
+}
Modified: maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/utils/TestDependencyStatusSets.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/utils/TestDependencyStatusSets.java?rev=1804137&r1=1804136&r2=1804137&view=diff
==============================================================================
--- maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/utils/TestDependencyStatusSets.java (original)
+++ maven/plugins/trunk/maven-dependency-plugin/src/test/java/org/apache/maven/plugins/dependency/utils/TestDependencyStatusSets.java Fri Aug 4 15:40:19 2017
@@ -19,11 +19,6 @@ package org.apache.maven.plugins.depende
* under the License.
*/
-import java.io.IOException;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugins.dependency.AbstractDependencyMojoTestCase;
public class TestDependencyStatusSets
@@ -57,67 +52,4 @@ public class TestDependencyStatusSets
* dss.getUnResolvedDependencies() ); assertSame( s, dss.getSkippedDependencies() );
*/
}
-
- public void testDependencyStatusLog()
- throws IOException
- {
- Set<Artifact> artifacts = this.stubFactory.getMixedArtifacts();
- doTestDependencyStatusLog( artifacts );
- }
-
- public void testDependencyStatusLogNullFiles()
- throws IOException
- {
- this.stubFactory.setCreateFiles( false );
- Set<Artifact> artifacts = this.stubFactory.getMixedArtifacts();
- doTestDependencyStatusLog( artifacts );
- }
-
- public void testDependencyStatusEmptySet()
- {
- doTestDependencyStatusLog( new HashSet<Artifact>() );
- }
-
- public void doTestDependencyStatusLog( Set<Artifact> artifacts )
- {
- // TODO: implement logger to check correct output
- // this test is just looking for unexpected exceptions.
-
- DependencyStatusSets dss = new DependencyStatusSets();
- dss.getOutput( false );
- dss.getOutput( true );
-
- dss = new DependencyStatusSets( artifacts, null, null );
- dss.getOutput( false );
- dss.getOutput( true );
-
- dss = new DependencyStatusSets( null, artifacts, null );
- dss.getOutput( false );
- dss.getOutput( true );
-
- dss = new DependencyStatusSets( null, null, artifacts );
- dss.getOutput( false );
- dss.getOutput( true );
-
- dss = new DependencyStatusSets( artifacts, artifacts, null );
- dss.getOutput( false );
- dss.getOutput( true );
-
- dss = new DependencyStatusSets( null, artifacts, artifacts );
- dss.getOutput( false );
- dss.getOutput( true );
-
- dss = new DependencyStatusSets( artifacts, null, artifacts );
- dss.getOutput( false );
- dss.getOutput( true );
-
- dss = new DependencyStatusSets( artifacts, artifacts, artifacts );
- dss.getOutput( false );
- dss.getOutput( true );
- dss.getOutput( false, true );
- dss.getOutput( true, true );
- dss.getOutput( false, false );
- dss.getOutput( true, false );
-
- }
}