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 2015/02/08 13:00:00 UTC

svn commit: r1658152 - in /maven/plugins/trunk/maven-jdeps-plugin/src: main/java/org/apache/maven/plugin/jdeps/ main/java/org/apache/maven/plugin/jdeps/consumers/ test/java/org/apache/maven/plugin/jdeps/consumers/

Author: rfscholte
Date: Sun Feb  8 12:00:00 2015
New Revision: 1658152

URL: http://svn.apache.org/r1658152
Log:
Add consumption of profiles

Modified:
    maven/plugins/trunk/maven-jdeps-plugin/src/main/java/org/apache/maven/plugin/jdeps/AbstractJDepsMojo.java
    maven/plugins/trunk/maven-jdeps-plugin/src/main/java/org/apache/maven/plugin/jdeps/consumers/JDepsConsumer.java
    maven/plugins/trunk/maven-jdeps-plugin/src/test/java/org/apache/maven/plugin/jdeps/consumers/JDepsConsumerTest.java

Modified: maven/plugins/trunk/maven-jdeps-plugin/src/main/java/org/apache/maven/plugin/jdeps/AbstractJDepsMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-jdeps-plugin/src/main/java/org/apache/maven/plugin/jdeps/AbstractJDepsMojo.java?rev=1658152&r1=1658151&r2=1658152&view=diff
==============================================================================
--- maven/plugins/trunk/maven-jdeps-plugin/src/main/java/org/apache/maven/plugin/jdeps/AbstractJDepsMojo.java (original)
+++ maven/plugins/trunk/maven-jdeps-plugin/src/main/java/org/apache/maven/plugin/jdeps/AbstractJDepsMojo.java Sun Feb  8 12:00:00 2015
@@ -441,6 +441,7 @@ public abstract class AbstractJDepsMojo
                         toolchainManager.getClass().getMethod( "getToolchains", MavenSession.class, String.class,
                                                                Map.class );
 
+                    @SuppressWarnings( "unchecked" )
                     List<Toolchain> tcs =
                         (List<Toolchain>) getToolchainsMethod.invoke( toolchainManager, session, "jdk",
                                                                       Collections.singletonMap( "version", "[1.8,)" ) );

Modified: maven/plugins/trunk/maven-jdeps-plugin/src/main/java/org/apache/maven/plugin/jdeps/consumers/JDepsConsumer.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-jdeps-plugin/src/main/java/org/apache/maven/plugin/jdeps/consumers/JDepsConsumer.java?rev=1658152&r1=1658151&r2=1658152&view=diff
==============================================================================
--- maven/plugins/trunk/maven-jdeps-plugin/src/main/java/org/apache/maven/plugin/jdeps/consumers/JDepsConsumer.java (original)
+++ maven/plugins/trunk/maven-jdeps-plugin/src/main/java/org/apache/maven/plugin/jdeps/consumers/JDepsConsumer.java Sun Feb  8 12:00:00 2015
@@ -38,18 +38,48 @@ public class JDepsConsumer
     implements StreamConsumer
 {
 
-    private static final Pattern JDKINTERNALAPI = Pattern.compile( "\\s+->\\s([a-z\\.]+)\\s+(\\S.*)" );
+    /**
+     * JDK8: JDK internal API (rt.jar)
+     * JDK9: JDK internal API (java.base)
+     */
+    private static final Pattern JDKINTERNALAPI = Pattern.compile( "\\s+->\\s([a-z\\.]+)\\s+(JDK internal API .+)" );
 
+    /**
+     * <dl>
+     *  <dt>key</dt><dd>The offending package</dd>
+     *  <dt>value</dt><dd>Offending details</dd>
+     * </dl>
+     */
     private Map<String, String> offendingPackages = new HashMap<String, String>();
 
+    private static final Pattern PROFILE = Pattern.compile( "\\s+->\\s([a-z\\.]+)\\s+(\\S+)" );
+
+    /**
+     * <dl>
+     *  <dt>key</dt><dd>The package</dd>
+     *  <dt>value</dt><dd>The profile</dd>
+     * </dl>
+     */
+    private Map<String, String> profiles = new HashMap<String, String>();
+
+    
     public void consumeLine( String line )
     {
         super.consumeLine( line );
+        Matcher matcher;
         
-        Matcher matcher = JDKINTERNALAPI.matcher( line );
+        matcher = JDKINTERNALAPI.matcher( line );
         if ( matcher.matches() )
         {
             offendingPackages.put( matcher.group( 1 ), matcher.group( 2 ) );
+            return;
+        }
+        
+        matcher = PROFILE.matcher( line );
+        if ( matcher.matches() )
+        {
+            profiles.put( matcher.group( 1 ), matcher.group( 2 ) );
+            return;
         }
     }
 
@@ -57,4 +87,10 @@ public class JDepsConsumer
     {
         return offendingPackages;
     }
+    
+    public Map<String, String> getProfiles()
+    {
+        return profiles;
+    }
+
 }

Modified: maven/plugins/trunk/maven-jdeps-plugin/src/test/java/org/apache/maven/plugin/jdeps/consumers/JDepsConsumerTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-jdeps-plugin/src/test/java/org/apache/maven/plugin/jdeps/consumers/JDepsConsumerTest.java?rev=1658152&r1=1658151&r2=1658152&view=diff
==============================================================================
--- maven/plugins/trunk/maven-jdeps-plugin/src/test/java/org/apache/maven/plugin/jdeps/consumers/JDepsConsumerTest.java (original)
+++ maven/plugins/trunk/maven-jdeps-plugin/src/test/java/org/apache/maven/plugin/jdeps/consumers/JDepsConsumerTest.java Sun Feb  8 12:00:00 2015
@@ -42,6 +42,25 @@ public class JDepsConsumerTest
         
         assertEquals( 1, consumer.getOffendingPackages().size() );
         assertEquals( "JDK internal API (java.base)", consumer.getOffendingPackages().get( "sun.misc" ) );
+        assertEquals( 0, consumer.getProfiles().size() );
+    }
+
+    @Test
+    public void testProfile()
+    {
+        consumer = new JDepsConsumer();
+        consumer.consumeLine( "E:\\java-workspace\\apache-maven-plugins\\maven-jdeps-plugin\\target\\classes -> "
+            + "C:\\Program Files\\Java\\jdk1.8.0\\jre\\lib\\rt.jar (compact1)" );
+        consumer.consumeLine( "   <unnamed> (classes)" );
+        consumer.consumeLine( "      -> java.io                                            compact1" );
+        consumer.consumeLine( "      -> java.lang                                          compact1" );
+        consumer.consumeLine( "      -> sun.misc                                           JDK internal API (rt.jar)" );
+        
+        assertEquals( 1, consumer.getOffendingPackages().size() );
+        assertEquals( "JDK internal API (rt.jar)", consumer.getOffendingPackages().get( "sun.misc" ) );
+        assertEquals( 2, consumer.getProfiles().size() );
+        assertEquals( "compact1", consumer.getProfiles().get( "java.io" ) );
+        assertEquals( "compact1", consumer.getProfiles().get( "java.lang" ) );
     }
 
 }