private static List<String> findResourcePaths(String moduleName) throws ModuleLoadException, ReflectiveOperationException, IOException, URISyntaxException { ModuleLoader moduleLoader = Module.getCallerModuleLoader(); ModuleLoaderMXBean loader = ModuleInfoHandler.INSTANCE.getMxBean(moduleLoader); moduleLoader.loadModule(ModuleIdentifier.fromString(moduleName)); List<String> result = new LinkedList<>(); for (ResourceLoaderInfo rl : loader.getResourceLoaders(moduleName)){ if (rl.getLocation() != null) { URL url = new URL(rl.getLocation()); switch (url.getProtocol()){ case "jar": { JarURLConnection jarConnection = (JarURLConnection)url.openConnection(); result.add(jarConnection.getJarFile().getName()); break; } default: { result.add(new File(url.getFile() ).toString()); } } } } return result; } }
@Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { ModelNode model = new ModelNode(); populateModel(operation, model); String moduleName = MODULE_NAME.resolveModelAttribute(context, model).asString(); String slot = MODULE_SLOT.resolveModelAttribute(context, model).asString(); ModuleIdentifier id = ModuleIdentifier.create(moduleName, slot); ModuleLoader loader = Module.getBootModuleLoader(); try { ModuleLoaderMXBean mxBean = getMxBean(loader); ModuleInfo moduleInfo = mxBean.getModuleDescription(id.toString()); context.getResult().set(populateModuleInfo(moduleInfo)); } catch (Exception e) { throw ServerLogger.ROOT_LOGGER.couldNotGetModuleInfo(id.toString(), e); } }
@Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { ModelNode model = new ModelNode(); populateModel(operation, model); String moduleName = MODULE_NAME.resolveModelAttribute(context, model).asString(); String slot = MODULE_SLOT.resolveModelAttribute(context, model).asString(); ModuleIdentifier id = ModuleIdentifier.create(moduleName, slot); ModuleLoader loader = Module.getBootModuleLoader(); try { ModuleLoaderMXBean mxBean = getMxBean(loader); ModuleInfo moduleInfo = mxBean.getModuleDescription(id.toString()); context.getResult().set(populateModuleInfo(moduleInfo)); } catch (Exception e) { throw ServerLogger.ROOT_LOGGER.couldNotGetModuleInfo(id.toString(), e); } }
private static List<String> findResourcePaths(String moduleName) throws ModuleLoadException, ReflectiveOperationException, IOException, URISyntaxException { ModuleLoader moduleLoader = Module.getCallerModuleLoader(); ModuleLoaderMXBean loader = ModuleInfoHandler.INSTANCE.getMxBean(moduleLoader); moduleLoader.loadModule(ModuleIdentifier.fromString(moduleName)); List<String> result = new LinkedList<>(); for (ResourceLoaderInfo rl : loader.getResourceLoaders(moduleName)){ if (rl.getLocation() != null) { URL url = new URL(rl.getLocation()); switch (url.getProtocol()){ case "jar": { JarURLConnection jarConnection = (JarURLConnection)url.openConnection(); result.add(jarConnection.getJarFile().getName()); break; } default: { result.add(new File(url.getFile() ).toString()); } } } } return result; } }