Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-11567

Provide way to retrieve VirtualFile instance from url.openConnection()

    Details

      Description

      It is not possible to obtain VirtualFile (and by extensions it's physicalFile) instance wrapped in VirtualFileURLConnection without using reflection.

      Code snippet from Drools [1], where they try to get hold of VirtualFile#getPhysicalFile():

          private static Object findVirtualFile( URL url ) throws IOException {
              URLConnection urlConnection = url.openConnection();
              try {
                  if ( urlConnection.getClass().getName().equals( "org.jboss.vfs.protocol.VirtualFileURLConnection" ) ) {
                      Field f = urlConnection.getClass().getDeclaredField( "file" );
                      f.setAccessible( true );
                      return f.get( urlConnection );
                  }
              } catch (NoSuchFieldException | IllegalAccessException e) {
                  // ignored
              }
              return urlConnection.getContent();
          }
      

      [1] https://github.com/kiegroup/drools/commit/2a36f67a29ed06d0f980a60ff1c81fa897e8147a

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  thofman Tomas Hofman
                  Reporter:
                  thofman Tomas Hofman
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: