Hi,

for the maven-jdeps-plugin I use the following code to detect offending packages:
---
import java.io.IOException;

import org.codehaus.plexus.util.StringUtils;

public class Base64Codec
{

    @SuppressWarnings( "restriction" )
    public static byte[] Base64decode( String input ) throws IOException
    {
        if( StringUtils.isNotEmpty( input ) )
        {
            return new sun.misc.BASE64Decoder().decodeBuffer( input );
        }
        else
        {
            return null;
        }
    }
}
---

Previous versions of JDK9 gave me the following output:

classes -> java.base
   <unnamed> (classes)
      -> java.io
      -> java.lang
-> sun.misc JDK internal API (java.base)


The current b86 gives me:

classes -> java.base
   <unnamed> (classes)
      -> java.io
      -> java.lang
      -> sun.misc

So why this change? And is there another way to detect the usage of non-accessible classes?

The maven-plugin has a parameter called failOnWarning (default:true) which should break the build in order to help developers to change their code when they rely on internal classes.

regards,
Robert Scholte

Reply via email to