Version range restrictions are handled at a higher policy layer.
e.g. com.acme.something:1.2.3 could be something like:
The details are not relevant to the dumb classloader which is just told what to do
i.e. in the example above:
policy = new VFSClassLoaderPolicy("repository/acme/something/1.2.3/something.jar"); policy.setExportedPackages("com.acme.something");
Concurrently there could also be
policy2 = new VFSClassLoaderPolicy("repository/acme/something/1.2.4/something.jar"); policy2.setExportedPackages("com.acme.something");
Which of these gets wired as your delegates/imports will be decided at the higher level.
The higher level in our case will be the MainDeployer with a new classloading
dependency implementation provided by the MC, defined by a jboss-classloader.xml
(if it is not an osgi deployment).