private void loadModules(Element root) { Element componentRoot = findComponent(root, "ProjectModuleManager"); if (componentRoot == null) return; final Element modules = componentRoot.getChild("modules"); for (Element moduleElement : JDOMUtil.getChildren(modules, "module")) { final String path = moduleElement.getAttributeValue("filepath"); JpsModule module = loadModule(path); myProject.addModule(module); } }
protected <T extends JpsElement> JpsModule addModule( String moduleName, String[] srcPaths, @Nullable String outputPath, @Nullable String testOutputPath, JpsSdk<T> sdk) { JpsModule module = myProject.addModule(moduleName, JpsJavaModuleType.INSTANCE); final JpsSdkType<T> sdkType = sdk.getSdkType(); final JpsSdkReferencesTable sdkTable = module.getSdkReferencesTable(); sdkTable.setSdkReference(sdkType, sdk.createReference()); if (sdkType instanceof JpsJavaSdkTypeWrapper) { final JpsSdkReference<T> wrapperRef = sdk.createReference(); sdkTable.setSdkReference( JpsJavaSdkType.INSTANCE, JpsJavaExtensionService.getInstance() .createWrappedJavaSdkReference((JpsJavaSdkTypeWrapper) sdkType, wrapperRef)); } module.getDependenciesList().addSdkDependency(sdkType); if (srcPaths.length > 0 || outputPath != null) { for (String srcPath : srcPaths) { module.getContentRootsList().addUrl(JpsPathUtil.pathToUrl(srcPath)); module.addSourceRoot(JpsPathUtil.pathToUrl(srcPath), JavaSourceRootType.SOURCE); } JpsJavaModuleExtension extension = JpsJavaExtensionService.getInstance().getOrCreateModuleExtension(module); if (outputPath != null) { extension.setOutputUrl(JpsPathUtil.pathToUrl(outputPath)); if (!StringUtil.isEmpty(testOutputPath)) { extension.setTestOutputUrl(JpsPathUtil.pathToUrl(testOutputPath)); } else { extension.setTestOutputUrl(extension.getOutputUrl()); } } else { extension.setInheritOutput(true); } } return module; }