Search in sources :

Example 1 with Event

use of javax.enterprise.event.Event in project indy by Commonjava.

the class DefaultStoreEventDispatcher method deleted.

@Override
public void deleted(final EventMetadata eventMetadata, final ArtifactStore... stores) {
    if (postDelEvent != null) {
        final List<StoreKey> storeList = Arrays.asList(stores).stream().map(store -> store.getKey()).collect(Collectors.toList());
        logger.trace("Dispatch post-delete event for: {}", storeList);
        executor.execute(() -> {
            String oldName = Thread.currentThread().getName();
            try {
                Thread.currentThread().setName("POST-DELETE-EVENT: " + storeList);
                final Map<ArtifactStore, Transfer> storeRoots = new HashMap<>();
                for (final ArtifactStore store : stores) {
                    if (store == null) {
                        continue;
                    }
                    final Transfer root = fileManager.getStoreRootDirectory(store);
                    storeRoots.put(store, root);
                }
                final ArtifactStoreDeletePostEvent event = new ArtifactStoreDeletePostEvent(eventMetadata, storeRoots);
                fireEvent(postDelEvent, event);
            } finally {
                if (oldName != null) {
                    Thread.currentThread().setName(oldName);
                }
            }
        });
    }
}
Also used : Arrays(java.util.Arrays) LoggerFactory(org.slf4j.LoggerFactory) HashMap(java.util.HashMap) Inject(javax.inject.Inject) Transfer(org.commonjava.maven.galley.model.Transfer) ArtifactStoreEnablementEvent(org.commonjava.indy.change.event.ArtifactStoreEnablementEvent) WeftManaged(org.commonjava.cdi.util.weft.WeftManaged) ExecutorConfig(org.commonjava.cdi.util.weft.ExecutorConfig) EventUtils.fireEvent(org.commonjava.indy.change.EventUtils.fireEvent) Map(java.util.Map) ArtifactStoreDeletePostEvent(org.commonjava.indy.change.event.ArtifactStoreDeletePostEvent) CoreEventManagerConstants(org.commonjava.indy.change.event.CoreEventManagerConstants) DownloadManager(org.commonjava.indy.content.DownloadManager) ArtifactStoreDeletePreEvent(org.commonjava.indy.change.event.ArtifactStoreDeletePreEvent) StoreKey(org.commonjava.indy.model.core.StoreKey) StoreEventDispatcher(org.commonjava.indy.data.StoreEventDispatcher) Event(javax.enterprise.event.Event) Logger(org.slf4j.Logger) ArtifactStore(org.commonjava.indy.model.core.ArtifactStore) Executor(java.util.concurrent.Executor) Collectors(java.util.stream.Collectors) List(java.util.List) ArtifactStorePreUpdateEvent(org.commonjava.indy.change.event.ArtifactStorePreUpdateEvent) EventMetadata(org.commonjava.maven.galley.event.EventMetadata) ArtifactStoreUpdateType(org.commonjava.indy.change.event.ArtifactStoreUpdateType) ArtifactStorePostUpdateEvent(org.commonjava.indy.change.event.ArtifactStorePostUpdateEvent) ArtifactStore(org.commonjava.indy.model.core.ArtifactStore) HashMap(java.util.HashMap) Transfer(org.commonjava.maven.galley.model.Transfer) StoreKey(org.commonjava.indy.model.core.StoreKey) ArtifactStoreDeletePostEvent(org.commonjava.indy.change.event.ArtifactStoreDeletePostEvent)

Example 2 with Event

use of javax.enterprise.event.Event in project kie-wb-common by kiegroup.

the class LibraryFileUpdateNotifier method onBatchIndexEvent.

public void onBatchIndexEvent(@Observes final BatchIndexEvent event) {
    event.getIndexEvents().stream().flatMap(evt -> {
        switch(evt.getKind()) {
            case Deleted:
                return Stream.of(((IndexEvent.DeletedEvent) evt).getDeleted().getKey());
            case NewlyIndexed:
                return Stream.of(((IndexEvent.NewlyIndexedEvent) evt).getKObject().getKey());
            case Renamed:
                return Stream.of(((IndexEvent.RenamedEvent) evt).getTarget().getKey());
            default:
                return Stream.empty();
        }
    }).map(pathStr -> {
        final Path path = getPath(pathStr);
        final WorkspaceProject project = workspaceProjectService.resolveProject(convertPath(path));
        final String repositoryId = project.getRepository().getIdentifier();
        final String branchName = (path instanceof JGitPathImpl) ? ((JGitPathImpl) path).getRefTree() : null;
        return new RepositoryFileListUpdatedEvent(repositoryId, branchName);
    }).distinct().forEach(repositoryFileListUpdatedEvent::fire);
}
Also used : Event(javax.enterprise.event.Event) RepositoryFileListUpdatedEvent(org.kie.workbench.common.screens.library.api.RepositoryFileListUpdatedEvent) Path(org.uberfire.java.nio.file.Path) IndexEvent(org.uberfire.ext.metadata.event.IndexEvent) WorkspaceProjectService(org.guvnor.common.services.project.service.WorkspaceProjectService) JGitPathImpl(org.uberfire.java.nio.fs.jgit.JGitPathImpl) Paths(org.uberfire.backend.server.util.Paths) Inject(javax.inject.Inject) Stream(java.util.stream.Stream) BatchIndexEvent(org.uberfire.ext.metadata.event.BatchIndexEvent) Observes(javax.enterprise.event.Observes) ApplicationScoped(javax.enterprise.context.ApplicationScoped) WorkspaceProject(org.guvnor.common.services.project.model.WorkspaceProject) Path(org.uberfire.java.nio.file.Path) IndexEvent(org.uberfire.ext.metadata.event.IndexEvent) BatchIndexEvent(org.uberfire.ext.metadata.event.BatchIndexEvent) WorkspaceProject(org.guvnor.common.services.project.model.WorkspaceProject) RepositoryFileListUpdatedEvent(org.kie.workbench.common.screens.library.api.RepositoryFileListUpdatedEvent) JGitPathImpl(org.uberfire.java.nio.fs.jgit.JGitPathImpl)

Example 3 with Event

use of javax.enterprise.event.Event in project kie-wb-common by kiegroup.

the class LibraryAssetUpdateNotifier method notifyOnUpdatedAssets.

public void notifyOnUpdatedAssets(@Observes @Named(Constants.INDEXER_ID) BatchIndexEvent event) {
    if (!isUpdateNotifierEnabled()) {
        return;
    }
    // Assume that all indexed items are from the same project.
    event.getIndexEvents().stream().flatMap(evt -> {
        switch(evt.getKind()) {
            case Deleted:
                return Stream.of(((DeletedEvent) evt).getDeleted().getKey());
            case NewlyIndexed:
                return Stream.of(((NewlyIndexedEvent) evt).getKObject().getKey());
            case Renamed:
                return Stream.of(((RenamedEvent) evt).getTarget().getKey());
            default:
                return Stream.empty();
        }
    }).map(path -> org.uberfire.java.nio.file.Paths.get(path)).filter(path -> libraryIndexer.supportsPath(path)).flatMap(path -> {
        try {
            WorkspaceProject project = projectService.resolveProject(Paths.convert(path));
            return (project == null) ? Stream.empty() : Stream.of(project);
        } catch (Throwable t) {
            return Stream.empty();
        }
    }).map(project -> new ProjectAssetListUpdated(project)).findFirst().ifPresent(clientEvent -> {
        logger.info("Sending indexing notification for project [{}].", clientEvent.getProject().getRepository().getIdentifier());
        assetListUpdateEvent.fire(clientEvent);
    });
}
Also used : Event(javax.enterprise.event.Event) Logger(org.slf4j.Logger) Remote(org.kie.workbench.common.screens.library.api.Remote) RenamedEvent(org.uberfire.ext.metadata.event.IndexEvent.RenamedEvent) DeletedEvent(org.uberfire.ext.metadata.event.IndexEvent.DeletedEvent) WorkspaceProjectService(org.guvnor.common.services.project.service.WorkspaceProjectService) ProjectAssetListUpdated(org.kie.workbench.common.screens.library.api.ProjectAssetListUpdated) Paths(org.uberfire.backend.server.util.Paths) Inject(javax.inject.Inject) NewlyIndexedEvent(org.uberfire.ext.metadata.event.IndexEvent.NewlyIndexedEvent) Stream(java.util.stream.Stream) BatchIndexEvent(org.uberfire.ext.metadata.event.BatchIndexEvent) Observes(javax.enterprise.event.Observes) FileSystemUtils(org.uberfire.java.nio.file.api.FileSystemUtils) IndexingFinishedEvent(org.kie.workbench.common.services.refactoring.model.index.events.IndexingFinishedEvent) ApplicationScoped(javax.enterprise.context.ApplicationScoped) WorkspaceProject(org.guvnor.common.services.project.model.WorkspaceProject) Named(javax.inject.Named) Constants(org.kie.workbench.common.screens.library.api.index.Constants) ProjectAssetListUpdated(org.kie.workbench.common.screens.library.api.ProjectAssetListUpdated) NewlyIndexedEvent(org.uberfire.ext.metadata.event.IndexEvent.NewlyIndexedEvent) WorkspaceProject(org.guvnor.common.services.project.model.WorkspaceProject) DeletedEvent(org.uberfire.ext.metadata.event.IndexEvent.DeletedEvent) RenamedEvent(org.uberfire.ext.metadata.event.IndexEvent.RenamedEvent)

Example 4 with Event

use of javax.enterprise.event.Event in project kie-wb-common by kiegroup.

the class ModuleSaverTest method testGavBasedPackagesSanitized.

@Test
public void testGavBasedPackagesSanitized() throws IOException {
    String unsanitizedId = "hyphs-and.int.123";
    String sanitizedPkgStructure = "hyphs_and/_int/_23/hyphs_and/_int/_23";
    POM pom = new POM();
    pom.setName("gavBassedPackagesTest");
    pom.getGav().setGroupId(unsanitizedId);
    pom.getGav().setArtifactId(unsanitizedId);
    pom.getGav().setVersion(VERSION);
    ArgumentCaptor<Event> eventCaptor = ArgumentCaptor.forClass(Event.class);
    doNothing().when(newPackageEvent).fire((NewPackageEvent) eventCaptor.capture());
    when(resourceResolver.newPackage(Mockito.<org.guvnor.common.services.project.model.Package>any(), Mockito.<String>any(), Mockito.anyBoolean())).thenAnswer(new Answer<Object>() {

        @Override
        public Object answer(InvocationOnMock invocation) throws Throwable {
            org.guvnor.common.services.project.model.Package pkg = mock(org.guvnor.common.services.project.model.Package.class);
            when(pkg.getRelativeCaption()).thenReturn((String) invocation.getArguments()[1]);
            return pkg;
        }
    });
    runProjecCreationTest(pom);
    assertEquals(sanitizedPkgStructure, ((NewPackageEvent) eventCaptor.getValue()).getPackage().getRelativeCaption());
}
Also used : POM(org.guvnor.common.services.project.model.POM) NewPackageEvent(org.guvnor.common.services.project.events.NewPackageEvent) InvocationOnMock(org.mockito.invocation.InvocationOnMock) NewModuleEvent(org.guvnor.common.services.project.events.NewModuleEvent) NewPackageEvent(org.guvnor.common.services.project.events.NewPackageEvent) Event(javax.enterprise.event.Event) Test(org.junit.Test)

Aggregations

Event (javax.enterprise.event.Event)4 Inject (javax.inject.Inject)3 Stream (java.util.stream.Stream)2 ApplicationScoped (javax.enterprise.context.ApplicationScoped)2 Observes (javax.enterprise.event.Observes)2 WorkspaceProject (org.guvnor.common.services.project.model.WorkspaceProject)2 WorkspaceProjectService (org.guvnor.common.services.project.service.WorkspaceProjectService)2 Logger (org.slf4j.Logger)2 Paths (org.uberfire.backend.server.util.Paths)2 BatchIndexEvent (org.uberfire.ext.metadata.event.BatchIndexEvent)2 Arrays (java.util.Arrays)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1 Executor (java.util.concurrent.Executor)1 Collectors (java.util.stream.Collectors)1 Named (javax.inject.Named)1 ExecutorConfig (org.commonjava.cdi.util.weft.ExecutorConfig)1 WeftManaged (org.commonjava.cdi.util.weft.WeftManaged)1 EventUtils.fireEvent (org.commonjava.indy.change.EventUtils.fireEvent)1