play2-maven-plugin/src/main/java/com/google/code/play2/plugin/Play2EbeanEnhanceMojo.java
public List<File> collectClassFilesToEnhance( long lastEnhanced, File outputDirectory, String packageNames )
    {
        if ( packageNames == null || packageNames.isEmpty() )
        {
            return collectClassFilesToEnhanceFromPackage( lastEnhanced, outputDirectory, "", true );
            // return;
        }

        List<File> result = new ArrayList<File>();

        String[] pkgs = packageNames.split( "," );
        for ( int i = 0; i < pkgs.length; i++ )
        {

            String pkg = pkgs[i].trim().replace( '.', '/' );

            boolean recurse = false;
            if ( pkg.endsWith( "**" ) )
            {
                recurse = true;
                pkg = pkg.substring( 0, pkg.length() - 2 );
            }
            else if ( pkg.endsWith( "*" ) )
            {
                recurse = true;
                pkg = pkg.substring( 0, pkg.length() - 1 );
            }

            pkg = trimSlash( pkg );

            result.addAll( collectClassFilesToEnhanceFromPackage( lastEnhanced, outputDirectory, pkg, recurse ) );
        }
        return result;
    }
public List<File> collectClassFilesToEnhance( long lastEnhanced, File outputDirectory, String packageNames )
    {
        if ( packageNames == null || packageNames.isEmpty() )
        {
            return collectClassFilesToEnhanceFromPackage( lastEnhanced, outputDirectory, "", true );
            // return;
        }

        List<File> result = new ArrayList<File>();

        String[] pkgs = packageNames.split( "," );
        for ( int i = 0; i < pkgs.length; i++ )
        {

            String pkg = pkgs[i].trim().replace( '.', '/' );

            boolean recurse = false;
            if ( pkg.endsWith( "**" ) )
            {
                recurse = true;
                pkg = pkg.substring( 0, pkg.length() - 2 );
            }
            else if ( pkg.endsWith( "*" ) )
            {
                recurse = true;
                pkg = pkg.substring( 0, pkg.length() - 1 );
            }

            pkg = trimSlash( pkg );

            result.addAll( collectClassFilesToEnhanceFromPackage( lastEnhanced, outputDirectory, pkg, recurse ) );
        }
        return result;
    }
Process all the comma delimited list of packages.
<p>
Package names are effectively converted into a directory on the file
system, and the class files are found and processed.
</p>

@param lastEnhanced previous enhancement timestamp
@param outputDirectory directory containing classes to enhance
@param packageNames package names include filter
@return list of files to enhance