use of org.guvnor.ala.registry.inmemory.InMemoryPipelineRegistry in project kie-wb-common by kiegroup.
the class DataModelServiceConstructorTest method testConstructor.
@Test
public void testConstructor() throws IllegalArgumentException, FileSystemNotFoundException, SecurityException, URISyntaxException {
final URL packageUrl = this.getClass().getResource("/DataModelServiceConstructorTest/src/main/java/t1p1");
final RenameService renameService = mock(RenameService.class);
final SaveAndRenameServiceImpl saveAndRenameService = mock(SaveAndRenameServiceImpl.class);
RepositoryService repoService = mock(RepositoryService.class);
IOService ioService = new IOServiceDotFileImpl();
Collection<Role> roles = new ArrayList<>();
Collection<Group> groups = new ArrayList<>();
User user = new UserImpl("admin", roles, groups);
SessionInfo sessionInfo = new SessionInfoImpl("admin", user);
Instance<User> userInstance = mock(Instance.class);
when(userInstance.get()).thenReturn(user);
ConfigIOServiceProducer cfiosProducer = new ConfigIOServiceProducer();
cfiosProducer.setup();
IOService configIOService = cfiosProducer.configIOService();
MetadataService metadataService = new MetadataServiceImpl(ioService, configIOService, sessionInfo);
POMContentHandler pomContentHandler = new POMContentHandler();
M2RepoServiceImpl m2RepoService = new M2RepoServiceImpl();
POMService pomService = new POMServiceImpl(ioService, pomContentHandler, m2RepoService, metadataService);
KModuleContentHandler moduleContentHandler = new KModuleContentHandler();
CommentedOptionFactory commentedOptionFactory = new CommentedOptionFactoryImpl(sessionInfo);
ProjectConfigurationContentHandler moduleConfigurationContentHandler = new ProjectConfigurationContentHandler();
ProjectImportsService moduleImportsService = new ProjectImportsServiceImpl(ioService, moduleConfigurationContentHandler, renameService, saveAndRenameService);
Event<NewModuleEvent> newModuleEvent = new EventSourceMock<>();
Event<NewPackageEvent> newPackageEvent = new EventSourceMock<>();
Event<RenameModuleEvent> renameModuleEvent = new EventSourceMock<>();
Event<InvalidateDMOModuleCacheEvent> invalidateDMOCache = new EventSourceMock<>();
PermissionTypeRegistry permissionTypeRegistry = new DefaultPermissionTypeRegistry();
DotNamedPermissionType permissionType = new DotNamedPermissionType(REPOSITORY_TYPE.getName());
permissionType.createPermission(REPOSITORY_TYPE, RepositoryAction.READ, true);
permissionType.createPermission(REPOSITORY_TYPE, RepositoryAction.CREATE, true);
permissionType.createPermission(REPOSITORY_TYPE, RepositoryAction.UPDATE, true);
permissionType.createPermission(REPOSITORY_TYPE, RepositoryAction.DELETE, true);
permissionTypeRegistry.register(permissionType);
ModuleRepositoryResolver repositoryResolver = new ModuleRepositoryResolverImpl(ioService, null, null);
FileDiscoveryService fileDiscoveryService = new FileDiscoveryServiceImpl();
HackedKieModuleServiceImpl moduleService = null;
HackedKModuleServiceImpl kModuleService = new HackedKModuleServiceImpl(ioService, moduleService, metadataService, moduleContentHandler);
KieResourceResolver resourceResolver = new KieResourceResolver(ioService, pomService, commentedOptionFactory, kModuleService, resourcePathResolversInstance);
ModuleSaver moduleSaver = null;
moduleService = new HackedKieModuleServiceImpl(ioService, moduleSaver, pomService, repoService, newModuleEvent, newPackageEvent, renameModuleEvent, invalidateDMOCache, sessionInfo, commentedOptionFactory, mock(ModuleFinder.class), resourceResolver, repositoryResolver);
ModuleRepositoriesContentHandler contentHandler = new ModuleRepositoriesContentHandler();
ModuleRepositoriesService moduleRepositoriesService = new KieModuleRepositoriesServiceImpl(ioService, repositoryResolver, resourceResolver, contentHandler, commentedOptionFactory);
DependencyService dependencyService = new DependencyServiceImpl();
PackageNameSearchProvider packageNameSearchProvider = new PackageNameSearchProvider(dependencyService);
PackageNameWhiteListLoader loader = new PackageNameWhiteListLoader(packageNameSearchProvider, ioService);
MetadataServerSideService serverSideMetdataService = new MetadataServiceImpl(ioService, configIOService, sessionInfo);
PackageNameWhiteListSaver saver = new PackageNameWhiteListSaver(ioService, serverSideMetdataService, commentedOptionFactory);
PackageNameWhiteListService packageNameWhiteListService = new PackageNameWhiteListServiceImpl(ioService, moduleService, loader, saver);
moduleSaver = new ModuleSaver(ioService, pomService, kModuleService, newModuleEvent, newPackageEvent, resourceResolver, moduleImportsService, moduleRepositoriesService, packageNameWhiteListService, commentedOptionFactory, sessionInfo);
moduleService.setModuleSaver(moduleSaver);
kModuleService.setModuleService(moduleService);
ProjectImportsService importsService = new ProjectImportsServiceImpl(ioService, moduleConfigurationContentHandler, renameService, saveAndRenameService);
Instance<BuildValidationHelper> buildValidationHelperBeans = null;
Instance<Predicate<String>> classFilterBeans = null;
HackedLRUModuleDependenciesClassLoaderCache dependenciesClassLoaderCache = new HackedLRUModuleDependenciesClassLoaderCache();
LRUPomModelCache pomModelCache = new LRUPomModelCache();
LRUBuilderCache builderCache = new LRUBuilderCache(ioService, moduleService, importsService, buildValidationHelperBeans, dependenciesClassLoaderCache, pomModelCache, packageNameWhiteListService, classFilterBeans);
Instance<PostBuildHandler> handlerInstance = mock(Instance.class);
Iterator<PostBuildHandler> mockIterator = mock(Iterator.class);
when(handlerInstance.iterator()).thenReturn(mockIterator);
when(mockIterator.hasNext()).thenReturn(false);
DeploymentVerifier deploymentVerifier = new DeploymentVerifier(repositoryResolver, moduleRepositoriesService);
BuildHelper buildHelper = new BuildHelper(pomService, m2RepoService, moduleService, deploymentVerifier, builderCache, handlerInstance, userInstance);
PipelineRegistry pipelineRegistry = new InMemoryPipelineRegistry();
BuildPipelineInitializer pipelineInitializer = new BuildPipelineInitializer(pipelineRegistry, getConfigExecutors(moduleService, buildHelper));
BuildPipelineInvoker pipelineInvoker = new BuildPipelineInvoker(pipelineInitializer.getExecutor(), pipelineRegistry);
BuildServiceHelper buildServiceHelper = new BuildServiceHelper(pipelineInvoker, deploymentVerifier);
BuildService buildService = new BuildServiceImpl(moduleService, buildServiceHelper, builderCache);
BuildInfoService buildInfoService = new BuildInfoService(buildService, builderCache);
ModuleDataModelOracleBuilderProvider builderProvider = new ModuleDataModelOracleBuilderProvider(packageNameWhiteListService, importsService);
LRUModuleDataModelOracleCache cacheModules = new LRUModuleDataModelOracleCache(builderProvider, moduleService, buildInfoService);
dependenciesClassLoaderCache.setBuildInfoService(buildInfoService);
LRUDataModelOracleCache cachePackages = new LRUDataModelOracleCache(ioService, fileDiscoveryService, cacheModules, moduleService, buildInfoService, dataModelExtensionProvider, new RawMVELEvaluator());
DataModelService dataModelService = new DataModelServiceImpl(cachePackages, cacheModules, moduleService);
final org.uberfire.java.nio.file.Path nioPackagePath = fs.getPath(packageUrl.toURI());
final Path packagePath = Paths.convert(nioPackagePath);
final ModuleDataModelOracle oracle = dataModelService.getModuleDataModel(packagePath);
assertNotNull(oracle);
assertEquals(4, oracle.getModuleModelFields().size());
assertContains("t1p1.Bean1", oracle.getModuleModelFields().keySet());
assertContains("t1p1.DRLBean", oracle.getModuleModelFields().keySet());
assertContains("t1p2.Bean2", oracle.getModuleModelFields().keySet());
assertContains("java.lang.String", oracle.getModuleModelFields().keySet());
assertEquals(TypeSource.JAVA_PROJECT, oracle.getModuleTypeSources().get("t1p1.Bean1"));
assertEquals(TypeSource.DECLARED, oracle.getModuleTypeSources().get("t1p1.DRLBean"));
assertEquals(TypeSource.JAVA_PROJECT, oracle.getModuleTypeSources().get("t1p2.Bean2"));
assertEquals(TypeSource.JAVA_PROJECT, oracle.getModuleTypeSources().get("java.lang.String"));
}
Aggregations