Re: Re: Re: Struts 7: action class finder

Florian Schlittgen <[email protected]>
Newsgroups gmane.comp.jakarta.struts.devel
Organization Dr. Lippke & Dr. Wagner GmbH
Message-ID <[email protected]>
On 23.12.24 19:12, Lukasz Lenart wrote:
> It doesn't match because there is no ".", this works:
>
> public static void main(String[] args) {
>      String packageExclude = "org.apache.struts2.*";
>      String classPackageName = "org.apache.struts2.";
>
>      WildcardHelper wildcardHelper = new WildcardHelper();
>      int[] packagePattern =
>              wildcardHelper.compilePattern(packageExclude);
>      System.out.println(wildcardHelper.match(new HashMap<>(),
>              classPackageName, packagePattern));
> }
>
> also this works
>
> public void testMatchStrutsPackages() {
>      // given
>      HashMap<String, String> matchedPatterns = new HashMap<>();
>      int[] pattern = wildcardHelper.compilePattern("org.apache.struts2.*");
>
>      // when & then
>      assertTrue(wildcardHelper.match(matchedPatterns,
> "org.apache.struts2.XWorkTestCase", pattern));
>      assertEquals("org.apache.struts2.XWorkTestCase", matchedPatterns.get("0"));
>      assertEquals("XWorkTestCase", matchedPatterns.get("1"));
>
>      assertTrue(wildcardHelper.match(matchedPatterns,
> "org.apache.struts2.core.SomeClass", pattern));
>      assertEquals("org.apache.struts2.core.SomeClass", matchedPatterns.get("0"));
>      assertEquals("core.SomeClass", matchedPatterns.get("1"));
> }
Thanks for looking into it. Your examples/tests are alright, but I think 
this is not the way it is being called. Please take a look at 
org.apache.struts2.convention.PackageBasedActionConfigBuilder.includeClassNameInActionScan(String). 
While debugging I can see that this method is being called with 
parameter "className" = "org.apache.struts2.XWorkTestCase". In the 
method's first line the package name is derived from the className by 
using "StringUtils.substringBeforeLast(className, ".")" which gives you 
"org.apache.struts2", no trailing dot. And without trailing dot it is 
not working.
Could you check whether it is the same for you?

Thanks! Cheers, Florian
smime.p7s (application/pkcs7-signature, 4.6 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.