public void addSystemDependency(final ModuleDependency dependency) { if (!exclusions.contains(dependency.getIdentifier()) && !systemDependenciesSet.contains(dependency.getIdentifier())) { this.systemDependencies.add(dependency); this.systemDependenciesSet.add(dependency.getIdentifier()); } }
private List<DependencyInfo> doGetDependencies(final Module module) { Dependency[] dependencies = module.getDependencies(); if (dependencies == null) { return Collections.emptyList(); } ArrayList<DependencyInfo> list = new ArrayList<DependencyInfo>(dependencies.length); for (Dependency dependency : dependencies) { final String dependencyType = dependency.getClass().getSimpleName(); final String exportFilter = dependency.getExportFilter().toString(); final String importFilter = dependency.getImportFilter().toString(); final DependencyInfo info; if (dependency instanceof LocalDependency) { final LocalDependency localDependency = (LocalDependency) dependency; ArrayList<String> pathList = new ArrayList<String>(localDependency.getPaths()); Collections.sort(pathList); info = new DependencyInfo( dependencyType, exportFilter, importFilter, null, null, false, localDependency.getLocalLoader().toString(), pathList); } else if (dependency instanceof ModuleDependency) { final ModuleDependency moduleDependency = (ModuleDependency) dependency; info = new DependencyInfo( dependencyType, exportFilter, importFilter, moduleDependency.getModuleLoader().mxBean, moduleDependency.getIdentifier().toString(), moduleDependency.isOptional(), null, null); } else { info = new DependencyInfo( dependencyType, exportFilter, importFilter, null, null, false, null, null); } list.add(info); } return list; }
public void addExclusion(final ModuleIdentifier exclusion) { allDependencies = null; exclusions.add(exclusion); Iterator<ModuleDependency> it = systemDependencies.iterator(); while (it.hasNext()) { final ModuleDependency dep = it.next(); if (dep.getIdentifier().equals(exclusion)) { it.remove(); } } it = localDependencies.iterator(); while (it.hasNext()) { final ModuleDependency dep = it.next(); if (dep.getIdentifier().equals(exclusion)) { it.remove(); } } }
@Override public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); final DeploymentUnit parent = deploymentUnit.getParent(); // only run for sub deployments if (parent == null) { return; } final ModuleSpecification moduleSpec = deploymentUnit.getAttachment(Attachments.MODULE_SPECIFICATION); final ModuleLoader moduleLoader = deploymentUnit.getAttachment(Attachments.SERVICE_MODULE_LOADER); final ModuleIdentifier parentModule = parent.getAttachment(Attachments.MODULE_IDENTIFIER); if (parentModule != null) { // access to ear classes ModuleDependency moduleDependency = new ModuleDependency(moduleLoader, parentModule, false, false, true); moduleDependency.addImportFilter(PathFilters.acceptAll(), true); moduleSpec.addDependency(moduleDependency); } }
@Override public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); final DeploymentUnit parent = deploymentUnit.getParent() == null ? deploymentUnit : deploymentUnit.getParent(); final ModuleSpecification parentModuleSpec = parent.getAttachment(Attachments.MODULE_SPECIFICATION); final ModuleSpecification moduleSpec = deploymentUnit.getAttachment(Attachments.MODULE_SPECIFICATION); final ModuleLoader moduleLoader = deploymentUnit.getAttachment(Attachments.SERVICE_MODULE_LOADER); final ModuleIdentifier moduleIdentifier = deploymentUnit.getAttachment(Attachments.MODULE_IDENTIFIER); if (deploymentUnit.getParent() != null) { final ModuleIdentifier parentModule = parent.getAttachment(Attachments.MODULE_IDENTIFIER); if (parentModule != null) { // access to ear classes ModuleDependency moduleDependency = new ModuleDependency(moduleLoader, parentModule, false, false, true); moduleDependency.addImportFilter(PathFilters.acceptAll(), true); moduleSpec.addLocalDependency(moduleDependency); } } // If the sub deployments aren't isolated, then we need to set up dependencies between the sub // deployments if (!parentModuleSpec.isSubDeploymentModulesIsolated()) { final List<DeploymentUnit> subDeployments = parent.getAttachmentList(Attachments.SUB_DEPLOYMENTS); final List<ModuleDependency> accessibleModules = new ArrayList<ModuleDependency>(); for (DeploymentUnit subDeployment : subDeployments) { final ModuleSpecification subModule = subDeployment.getAttachment(Attachments.MODULE_SPECIFICATION); if (!subModule.isPrivateModule()) { ModuleIdentifier identifier = subDeployment.getAttachment(Attachments.MODULE_IDENTIFIER); ModuleDependency dependency = new ModuleDependency(moduleLoader, identifier, false, false, true); dependency.addImportFilter(PathFilters.acceptAll(), true); accessibleModules.add(dependency); } } for (ModuleDependency identifier : accessibleModules) { if (!identifier.equals(moduleIdentifier)) { moduleSpec.addLocalDependencies(accessibleModules); } } } }
public void addLocalDependency(final ModuleDependency dependency) { allDependencies = null; if (!exclusions.contains(dependency.getIdentifier())) { this.localDependencies.add(dependency); } }