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" ) ); } }