public static ObjectProperties properties(Property... properties) { return new ObjectProperties(properties); }
List<ModuleInfo> modInfoList; ModuleInfo moduleInfo = new ModuleInfo(); moduleInfo.setName(module, module1.getProperty("name")); moduleInfo.setVersion(module, module1.getProperty("version")); moduleInfo.setPublicCle(module, module1.getProperty("public_cle")); moduleInfo.setType(module, module1.getProperty("type")); modInfoList.add(moduleInfo); moduleInfo = new ModuleInfo(); moduleInfo.setName(module, module2.getProperty("name")); moduleInfo.setVersion(module, module2.getProperty("version")); moduleInfo.setPublicCle(module, module2.getProperty("public_cle")); moduleInfo.setType(module, module2.getProperty("type")); modInfoList.add(moduleInfo);
public static Property property(String key, String value) { return new Property(key, value); }
private ModelNode populateModuleInfo(ModuleInfo module) throws Exception { ModelNode result = new ModelNode(); result.get("name").set(module.getName()); if (module.getMainClass() != null) { value.set(module.getMainClass()); if (module.getFallbackLoader() != null) { value.set(module.getFallbackLoader()); for (DependencyInfo dependencySpec : module.getDependencies()) { if (dependencySpec.getModuleName() == null) { continue; //todo check why it returns empty dependancy dependency.get("dependency-name").set(dependencySpec.getDependencyType()); dependency.get("module-name").set(dependencySpec.getModuleName()); dependency.get("export-filter").set(dependencySpec.getExportFilter()); dependency.get("import-filter").set(dependencySpec.getImportFilter()); dependency.get("optional").set(dependencySpec.isOptional()); value = result.get("local-loader-class"); if (dependencySpec.getLocalLoader() != null) { value.set(dependencySpec.getLocalLoader()); if (dependencySpec.getLocalLoaderPaths() != null) { ModelNode paths = dependency.get("local-loader-paths"); for (String path : dependencySpec.getLocalLoaderPaths()) { paths.add(path); for (ResourceLoaderInfo loaderInfo : module.getResourceLoaders()) { ModelNode loader = resourceLoaders.add();
public ModuleLoaderMXBean run() { ObjectName objectName; try { objectName = new ObjectName("jboss.modules", ObjectProperties.properties(property("type", "ModuleLoader"), property("name", ModuleLoader.this.getClass().getSimpleName() + "-" + Integer.toString(SEQ.incrementAndGet())))); } catch (MalformedObjectNameException e) { return null; } try { MXBeanImpl mxBean = new MXBeanImpl(ModuleLoader.this, objectName); REG_REF.addMBean(objectName, mxBean); return mxBean; } catch (Throwable ignored) { } return null; } });
public ModuleInfo getModuleDescription(final String name) { ModuleLoader loader = getModuleLoader(); final Module module = loadModule(name, loader); final List<DependencyInfo> dependencies = doGetDependencies(module); final List<ResourceLoaderInfo> resourceLoaders = doGetResourceLoaders(module); final LocalLoader fallbackLoader = module.getFallbackLoader(); final String fallbackLoaderString = fallbackLoader == null ? null : fallbackLoader.toString(); return new ModuleInfo(module.getIdentifier().toString(), module.getModuleLoader().mxBean, dependencies, resourceLoaders, module.getMainClass(), module.getClassLoaderPrivate().toString(), fallbackLoaderString); }
private List<ResourceLoaderInfo> doGetResourceLoaders(final Module module) { final ModuleClassLoader classLoader = module.getClassLoaderPrivate(); final ResourceLoader[] loaders = classLoader.getResourceLoaders(); final ArrayList<ResourceLoaderInfo> list = new ArrayList<ResourceLoaderInfo>(loaders.length); for (ResourceLoader resourceLoader : loaders) { list.add(new ResourceLoaderInfo(resourceLoader.getClass().getName(), new ArrayList<String>(resourceLoader.getPaths()))); } return list; }
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); } }
private ModelNode populateModuleInfo(ModuleInfo module) throws Exception { ModelNode result = new ModelNode(); result.get("name").set(module.getName()); if (module.getMainClass() != null) { value.set(module.getMainClass()); if (module.getFallbackLoader() != null) { value.set(module.getFallbackLoader()); for (DependencyInfo dependencySpec : module.getDependencies()) { if (dependencySpec.getModuleName() == null) { continue; //todo check why it returns empty dependancy dependency.get("dependency-name").set(dependencySpec.getDependencyType()); dependency.get("module-name").set(dependencySpec.getModuleName()); dependency.get("export-filter").set(dependencySpec.getExportFilter()); dependency.get("import-filter").set(dependencySpec.getImportFilter()); dependency.get("optional").set(dependencySpec.isOptional()); value = result.get("local-loader-class"); if (dependencySpec.getLocalLoader() != null) { value.set(dependencySpec.getLocalLoader()); if (dependencySpec.getLocalLoaderPaths() != null) { ModelNode paths = dependency.get("local-loader-paths"); for (String path : dependencySpec.getLocalLoaderPaths()) { paths.add(path); for (ResourceLoaderInfo loaderInfo : module.getResourceLoaders()) { ModelNode loader = resourceLoaders.add();
public ModuleLoaderMXBean run() { ObjectName objectName; try { objectName = new ObjectName("jboss.modules", ObjectProperties.properties(property("type", "ModuleLoader"), property("name", ModuleLoader.this.getClass().getSimpleName() + "-" + Integer.toString(SEQ.incrementAndGet())))); } catch (MalformedObjectNameException e) { return null; } try { MXBeanImpl mxBean = new MXBeanImpl(ModuleLoader.this, objectName); REG_REF.addMBean(objectName, mxBean); return mxBean; } catch (Throwable ignored) { } return null; } });
public ModuleInfo getModuleDescription(final String name) { ModuleLoader loader = getModuleLoader(); final Module module = loadModule(name, loader); final List<DependencyInfo> dependencies = doGetDependencies(module); final List<ResourceLoaderInfo> resourceLoaders = doGetResourceLoaders(module); final LocalLoader fallbackLoader = module.getFallbackLoader(); final String fallbackLoaderString = fallbackLoader == null ? null : fallbackLoader.toString(); return new ModuleInfo(module.getIdentifier().toString(), module.getModuleLoader().mxBean, dependencies, resourceLoaders, module.getMainClass(), module.getClassLoaderPrivate().toString(), fallbackLoaderString); }
public static ObjectProperties properties(Property... properties) { return new ObjectProperties(properties); }
public static Property property(String key, String value) { return new Property(key, value); }
private List<ResourceLoaderInfo> doGetResourceLoaders(final Module module) { final ModuleClassLoader classLoader = module.getClassLoaderPrivate(); final ResourceLoader[] loaders = classLoader.getResourceLoaders(); final ArrayList<ResourceLoaderInfo> list = new ArrayList<ResourceLoaderInfo>(loaders.length); for (ResourceLoader resourceLoader : loaders) { list.add(new ResourceLoaderInfo(resourceLoader.getClass().getName(), String.valueOf(resourceLoader.getLocation()), new ArrayList<>(resourceLoader.getPaths()))); } return list; }
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; } }
private void doDumpModuleInformation(final String name, final StringBuilder b) { ModuleInfo description = getModuleDescription(name); b.append("Module ").append(name).append('\n'); b.append(" Class loader: ").append(description.getClassLoader()).append('\n'); String fallbackLoader = description.getFallbackLoader(); if (fallbackLoader != null) b.append(" Fallback loader: ").append(fallbackLoader).append('\n'); String mainClass = description.getMainClass(); if (mainClass != null) b.append(" Main Class: ").append(mainClass).append('\n'); List<ResourceLoaderInfo> loaders = description.getResourceLoaders(); b.append(" Resource Loaders:\n"); for (ResourceLoaderInfo loader : loaders) { b.append(" Loader Type: ").append(loader.getType()).append('\n'); b.append(" Paths:\n"); for (String path : loader.getPaths()) { b.append(" ").append(path).append('\n'); for (DependencyInfo dependencyInfo : description.getDependencies()) { b.append(" Type: ").append(dependencyInfo.getDependencyType()).append('\n'); String moduleName = dependencyInfo.getModuleName(); if (moduleName != null) { b.append(" Module Name: ").append(moduleName).append('\n'); if (dependencyInfo.isOptional()) b.append(" (optional)\n"); b.append(" Export Filter: ").append(dependencyInfo.getExportFilter()).append('\n'); b.append(" Import Filter: ").append(dependencyInfo.getImportFilter()).append('\n'); String localLoader = dependencyInfo.getLocalLoader(); if (localLoader != null) { b.append(" Local Loader: ").append(localLoader).append('\n'); b.append(" Paths:\n"); for (String path : dependencyInfo.getLocalLoaderPaths()) {
private void doDumpModuleInformation(final String name, final StringBuilder b) { ModuleInfo description = getModuleDescription(name); b.append("Module ").append(name).append('\n'); b.append(" Class loader: ").append(description.getClassLoader()).append('\n'); String fallbackLoader = description.getFallbackLoader(); if (fallbackLoader != null) b.append(" Fallback loader: ").append(fallbackLoader).append('\n'); String mainClass = description.getMainClass(); if (mainClass != null) b.append(" Main Class: ").append(mainClass).append('\n'); List<ResourceLoaderInfo> loaders = description.getResourceLoaders(); b.append(" Resource Loaders:\n"); for (ResourceLoaderInfo loader : loaders) { b.append(" Loader Type: ").append(loader.getType()).append('\n'); b.append(" Paths:\n"); for (String path : loader.getPaths()) { b.append(" ").append(path).append('\n'); for (DependencyInfo dependencyInfo : description.getDependencies()) { b.append(" Type: ").append(dependencyInfo.getDependencyType()).append('\n'); String moduleName = dependencyInfo.getModuleName(); if (moduleName != null) { b.append(" Module Name: ").append(moduleName).append('\n'); if (dependencyInfo.isOptional()) b.append(" (optional)\n"); b.append(" Export Filter: ").append(dependencyInfo.getExportFilter()).append('\n'); b.append(" Import Filter: ").append(dependencyInfo.getImportFilter()).append('\n'); String localLoader = dependencyInfo.getLocalLoader(); if (localLoader != null) { b.append(" Local Loader: ").append(localLoader).append('\n'); b.append(" Paths:\n"); for (String path : dependencyInfo.getLocalLoaderPaths()) {