[ 
https://issues.apache.org/jira/browse/TAP5-2096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14003665#comment-14003665
 ] 

Hudson commented on TAP5-2096:
------------------------------

SUCCESS: Integrated in tapestry-trunk-freestyle #1218 (See 
[https://builds.apache.org/job/tapestry-trunk-freestyle/1218/])
TAP5-2096: correctly scan for classes in nested directories (jochen.kemnade: 
rev 5f8deb1fc109af839e670b2d8dd5342ba94a1833)
* 
tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClasspathScannerImpl.java
* tapestry-ioc/src/test/groovy/ioc/specs/ClasspathScannerImplSpec.groovy


> JBoss 4.2.3 Classpath scanning fails for nested paths
> -----------------------------------------------------
>
>                 Key: TAP5-2096
>                 URL: https://issues.apache.org/jira/browse/TAP5-2096
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-ioc
>    Affects Versions: 5.4
>            Reporter: Dustin Woods
>            Assignee: Jochen Kemnade
>              Labels: patch
>             Fix For: 5.4
>
>         Attachments: 
> 0001-JBoss-4.2.3-Classpath-scanning-fails-for-nested-path.patch
>
>
> When creating pages in a subdirectory under 'pages', the ClasspathScannerImpl 
> class recursively calls scanDir with only the last part of the package name 
> and not the entire package name resulting in pages not being able to be 
> loaded.
> Changing the line:
> final String nestedPackagePath = fileName + "/";
> to:
> final String nestedPackagePath = packagePath + fileName + "/";
>         /**
>          * Scan a dir for classes. Will recursively look in the supplied 
> directory and all sub directories.
>          *
>          * @param packagePath
>          *         Name of package that this directory corresponds to.
>          * @param packageDir
>          *         Dir to scan for classes.
>          */
>         private void scanDir(String packagePath, File packageDir)
>         {
>             if (packageDir.exists() && packageDir.isDirectory())
>             {
>                 for (final File file : packageDir.listFiles())
>                 {
>                     String fileName = file.getName();
>                     if (file.isDirectory())
>                     {
>                         final String nestedPackagePath = fileName + "/";
>                         queue.push(new IOWork()
>                         {
>                             public void run() throws IOException
>                             {
>                                 scanDir(nestedPackagePath, file);
>                             }
>                         });
>                     }
>                     if (matcher.matches(packagePath, fileName))
>                     {
>                         matches.add(packagePath + fileName);
>                     }
>                 }
>             }
>         }
>         /**
>          * Scan a dir for classes. Will recursively look in the supplied 
> directory and all sub directories.
>          *
>          * @param packagePath
>          *         Name of package that this directory corresponds to.
>          * @param packageDir
>          *         Dir to scan for classes.
>          */
>         private void scanDir(String packagePath, File packageDir)
>         {
>             if (packageDir.exists() && packageDir.isDirectory())
>             {
>                 for (final File file : packageDir.listFiles())
>                 {
>                     String fileName = file.getName();
>                     if (file.isDirectory())
>                     {
>                         final String nestedPackagePath = packagePath + 
> fileName + "/";
>                         queue.push(new IOWork()
>                         {
>                             public void run() throws IOException
>                             {
>                                 scanDir(nestedPackagePath, file);
>                             }
>                         });
>                     }
>                     if (matcher.matches(packagePath, fileName))
>                     {
>                         matches.add(packagePath + fileName);
>                     }
>                 }
>             }
>         }



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to