Re: Scanning multi version jars?

2017-09-18 Thread Greg Wilkins
Stephen, I think the use-case can be pretty well defined. There should be an enumeration/iterator/stream available that provides the contents of a jar file as it would be seen/interpreted by the JVMs classloader.So if the classloader is doing any processing to handle versioned classes/resourc

RE: Scanning multi version jars?

2017-09-18 Thread Stephen Felts
Thanks for the clarification – I overstated the “any JarEntry”. I didn’t look at VersionedStream so I now understand the limitations you mention.   In my case, it’s necessary to look at all files in the jar file to do the elimination of unneeded ordinary/inner classes so JarInputStream getNex

Re: Scanning multi version jars?

2017-09-18 Thread Greg Wilkins
Stephen, It is not the case that the getName() always returns the path starting with "META-INF/versions/". Specifically, if the entry is obtained from getJarEntry() API (and not from the enumerator), then the name is that of the unversioned file, but the metadata and contents obtained using the ja

RE: Scanning multi version jars?

2017-09-18 Thread Stephen Felts
A versioned file name, JarEntry.getName(), starts with "META-INF/versions/". The version is the following string up to the next "/". The version can be parsed with Runtime.Version.parse(). If not a versioned class file name, then use Jarfile.baseVersion(). That should be sufficient to get the versi

Re: Scanning multi version jars?

2017-09-18 Thread Greg Wilkins
Paul, yeh... I guess I concede it's not JarFiles job... as much as that would make things easier for containers to reach agreement:( However, can we at least look at having a new default method on JarEntry to query the version. Without that, containers don't have the information available to perf

Re: Scanning multi version jars?

2017-09-18 Thread Paul Sandoz
I agree with Alan here, we should not be pushing a semantic understanding of inner classes into JarFile. I do sympathise with the case of annotation class scanning, which has always tunnelled through the class loader view to directly get at class file bytes possibly dealing with various URI sc