[ 
https://issues.apache.org/jira/browse/MYFACES-4571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Melloware resolved MYFACES-4571.
--------------------------------
    Resolution: Fixed

> Quarkus: GraalVM Native never use JAR resource
> ----------------------------------------------
>
>                 Key: MYFACES-4571
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4571
>             Project: MyFaces Core
>          Issue Type: Improvement
>          Components: Extension Feature
>    Affects Versions: 2.3-next-M7, 4.0.0-RC5
>            Reporter: Melloware
>            Assignee: Melloware
>            Priority: Major
>             Fix For: 2.3-next-M8, 4.0.0-RC6
>
>
> [~tandraschko] I need some advice. I have 99% of functionality now working in 
> GraalVM native image I am down to my last issue.   It use using Tag Library 
> in Faces config is blowing up in Native Mode and here is why when its 
> resolving the Facelet URL.
> It is listed in *faces-config.xml* like this..
> {code:java}
>     <tag>
>         <tag-name>tabscode</tag-name>
>         <source>resources/tags/tabscode.xhtml</source>
>     </tag> {code}
> *DEV MODE (works):*
> {noformat}
> Source URL = 
> file:/C:/dev/primefaces/quarkus-faces/src/main/resources/META-INF/resources/template/template.xhtml
>  Path = ./config.xhtml
> Facelet URL = 
> file:/C:/dev/primefaces/quarkus-faces/src/main/resources/META-INF/resources/template/config.xhtml
> Facelet URL = 
> file:/C:/dev/primefaces/quarkus-faces/target/classes/META-INF/resources/tags/tabscode.xhtml{noformat}
> *PROD JAR MODE (works):*
> {noformat}
> Source URL = 
> jar:file:/C:/dev/primefaces/quarkus-faces/target/quarkus-app/app/quarkus-faces.jar!/META-INF/resources/template/template.xhtml
>  Path = ./config.xhtml
> Facelet URL = 
> jar:file:/C:/dev/primefaces/quarkus-faces/target/quarkus-app/app/quarkus-faces.jar!/META-INF/resources/template/config.xhtml
> Facelet URL = 
> jar:file:/C:/dev/primefaces/quarkus-faces/target/quarkus-app/app/quarkus-faces.jar!/META-INF/resources/tags/tabscode.xhtml{noformat}
> *GRAALVM NATIVE MODE (fails):*
> {noformat}
> Source URL = resource:/META-INF/resources/template/template.xhtml Path = 
> ./config.xhtml
> Facelet URL = resource:/META-INF/resources/template/config.xhtml
> Facelet URL = 
> jar:file:/project/quarkus-faces-runner.jar!/META-INF/resources/tags/tabscode.xhtml{noformat}
> As you can see tabscode then blows up with...
> {noformat}
> java.nio.file.NoSuchFileException: /project/quarkus-faces-runner.jar
>         at 
> [email protected]/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
>         at 
> [email protected]/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:148)
>         at 
> [email protected]/sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
>         at 
> [email protected]/java.nio.file.Files.readAttributes(Files.java:1851)
>         at 
> [email protected]/java.util.zip.ZipFile$Source.get(ZipFile.java:1264)
>         at 
> [email protected]/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:709)
>         at [email protected]/java.util.zip.ZipFile.<init>(ZipFile.java:243)
>         at [email protected]/java.util.zip.ZipFile.<init>(ZipFile.java:172)
>         at [email protected]/java.util.jar.JarFile.<init>(JarFile.java:347)
>         at 
> [email protected]/sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:103)
>         at 
> [email protected]/sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:72)
>         at 
> [email protected]/sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:168)
>         at 
> [email protected]/sun.net.www.protocol.jar.JarFileFactory.getOrCreate(JarFileFactory.java:91)
>         at 
> [email protected]/sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:132)
>         at 
> [email protected]/sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:175)
>         at [email protected]/java.net.URL.openStream(URL.java:1161)
>         at 
> org.apache.myfaces.view.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:824)
>         at 
> org.apache.myfaces.view.facelets.compiler.Compiler.compile(Compiler.java:80)
>         at 
> org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory._createFacelet(DefaultFaceletFactory.java:344)
>         at 
> org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory.lambda$new$0(DefaultFaceletFactory.java:105)
>         at 
> org.apache.myfaces.view.facelets.impl.CacheELFaceletCacheImpl.getFacelet(CacheELFaceletCacheImpl.java:137)
>         at 
> org.apache.myfaces.view.facelets.impl.CacheELFaceletCacheImpl.getFacelet(CacheELFaceletCacheImpl.java:45){noformat}
> Basically I was hoping you could point to me in the code based 1 or two spots 
> where in GRAAL mode I can override anything that is a JAR to be 
> "resource:/META-INF" instead of a JAR ever  I can do it with a GraalVM 
> Substitution but was hoping for some guidance on where to look at the best 
> spot. 
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to