/** * Used for runtime plugins. */ public void addNewEditorActivity(final SyncBeanDef<Activity> activityBean, String priority, String resourceTypeName) { final String id = activityBean.getName(); validateUniqueness(id); activitiesById.put(id, activityBean); this.resourceTypeManagerCache.addResourceActivity(new ActivityAndMetaInfo(iocManager, activityBean, Integer.valueOf(priority), Arrays.asList(resourceTypeName))); this.resourceTypeManagerCache.sortResourceActivitiesByPriority(); }
/** * Returns the activated activity with the highest priority that can handle the given file. Returns null if no * activated activity can handle the path. * @param path the file to find a path-based activity for (probably a {@link WorkbenchEditorActivity}, but this cache * makes no guarantees). */ public SyncBeanDef<Activity> getActivity(final Path path) { Optional<ActivityAndMetaInfo> optional = resourceTypeManagerCache.getResourceActivities().stream() .filter(activityAndMetaInfo -> activitySupportsPath(activityAndMetaInfo, path)) .findAny(); if(optional.isPresent()) { return optional.get().getActivityBean(); } throw new EditorResourceTypeNotFound(); }
protected List<String> getSuffixes(Category category) { return this.resourceTypeManagerCache.getResourceTypeDefinitionsByCategory(category) .stream() .map(ResourceTypeDefinition::getSuffix) .collect(Collectors.toList()); }
public void addResourceActivity(ActivityAndMetaInfo activityAndMetaInfo) { getResourceActivities().add(activityAndMetaInfo); List<ClientResourceType> resourceTypes = getResourceTypes(activityAndMetaInfo); this.addAll(resourceTypes); }
@Test public void initShouldOrderActivityByPriority() throws Exception { ActivityBeansCacheUnitTestWrapper cache = new ActivityBeansCacheUnitTestWrapper(); int priorityActivityOne = Integer.MIN_VALUE; int priorityActivityTwo = Integer.MAX_VALUE; cache.createActivitiesAndMetaInfo(priorityActivityOne, priorityActivityTwo); ActivityAndMetaInfo firstActivityOnList = cache.getResourceTypeManagerCache().getResourceActivities().get(0); ActivityAndMetaInfo secondActivityOnList = cache.getResourceTypeManagerCache().getResourceActivities().get(1); assertEquals(priorityActivityOne, firstActivityOnList.getPriority()); assertEquals(priorityActivityTwo, secondActivityOnList.getPriority()); cache.getResourceTypeManagerCache().sortResourceActivitiesByPriority(); firstActivityOnList = cache.getResourceTypeManagerCache().getResourceActivities().get(0); secondActivityOnList = cache.getResourceTypeManagerCache().getResourceActivities().get(1); assertEquals(priorityActivityTwo, firstActivityOnList.getPriority()); assertEquals(priorityActivityOne, secondActivityOnList.getPriority()); }
public void createActivitiesAndMetaInfo(int priority1, int priority2) { resourceTypeManagerCache.addResourceActivity(new ActivityAndMetaInfo(null, null, priority1, new ArrayList())); resourceTypeManagerCache.addResourceActivity(new ActivityAndMetaInfo(null, null, priority2, new ArrayList())); }
@Before public void setUp() { resourceTypeManagerCache = new ResourceTypeManagerCache(categoriesManagerCache); cache = new ActivityBeansCache(iocManager, newPerspectiveEventEvent, newWorkbenchScreenEvent, resourceTypeManagerCache, experimentalActivitiesAuthorizationManager); }
@PostConstruct void init() { final Collection<SyncBeanDef<Activity>> availableActivities = getAvailableActivities(); for (final SyncBeanDef<Activity> activityBean : availableActivities) { final String id = activityBean.getName(); validateUniqueness(id); activitiesById.put(id, activityBean); if (isSplashScreen(activityBean.getQualifiers())) { splashActivities.add((SplashScreenActivity) activityBean.getInstance()); } else { final Pair<Integer, List<String>> metaInfo = generateActivityMetaInfo(activityBean); if (metaInfo != null) { addResourceActivity(activityBean, metaInfo); } } } this.resourceTypeManagerCache.sortResourceActivitiesByPriority(); }
public Set<ResourceTypeDefinition> getResourceTypeDefinitions() { return this.resourceActivities.stream() .map(activityAndMetaInfo -> this.getResourceTypes(activityAndMetaInfo)) .flatMap(Collection::stream) .collect(Collectors.toSet()); }
public List<ResourceTypeDefinition> getResourceTypeDefinitionsByCategory(Category category) { return this.getResourceTypeDefinitions() .stream() .filter(resourceTypeDefinition -> { if (category != null) { return category.equals(resourceTypeDefinition.getCategory()); } else { return true; } }) .collect(Collectors.toList()); }
@Test public void initShouldOrderActivityByPriority() throws Exception { ActivityBeansCacheUnitTestWrapper cache = new ActivityBeansCacheUnitTestWrapper(); int priorityActivityOne = Integer.MIN_VALUE; int priorityActivityTwo = Integer.MAX_VALUE; cache.createActivitiesAndMetaInfo(priorityActivityOne, priorityActivityTwo); ActivityAndMetaInfo firstActivityOnList = cache.getResourceTypeManagerCache().getResourceActivities().get(0); ActivityAndMetaInfo secondActivityOnList = cache.getResourceTypeManagerCache().getResourceActivities().get(1); assertEquals(priorityActivityOne, firstActivityOnList.getPriority()); assertEquals(priorityActivityTwo, secondActivityOnList.getPriority()); cache.getResourceTypeManagerCache().sortResourceActivitiesByPriority(); firstActivityOnList = cache.getResourceTypeManagerCache().getResourceActivities().get(0); secondActivityOnList = cache.getResourceTypeManagerCache().getResourceActivities().get(1); assertEquals(priorityActivityTwo, firstActivityOnList.getPriority()); assertEquals(priorityActivityOne, secondActivityOnList.getPriority()); }
private void addResourceActivity(SyncBeanDef<Activity> activityBean, Pair<Integer, List<String>> metaInfo) { ActivityAndMetaInfo activityAndMetaInfo = new ActivityAndMetaInfo(iocManager, activityBean, metaInfo.getK1(), metaInfo.getK2()); this.resourceTypeManagerCache.addResourceActivity(activityAndMetaInfo); }
public ActivityBeansCacheUnitTestWrapper() { this.resourceTypeManagerCache = new ResourceTypeManagerCache(new CategoriesManagerCache(new Undefined())); mockDef = mock(SyncBeanDef.class); idMock = "mockDef1"; when(mockDef.getName()).thenReturn(idMock); when(mockDef.getBeanClass()).thenReturn(this.getClass()); availableActivities.add(mockDef); }
@Before public void setup() { when(authzManager.authorize(any(Resource.class), any(User.class))).thenReturn(true); when(activitiesAuthorizationManager.authorizeActivity(anyObject())).thenReturn(true); activatedActivity = mock(Activity.class); when(activatedActivity.getIdentifier()).thenReturn("activated activity"); when(activatedActivityBean.getInstance()).thenReturn(activatedActivity); when(activatedActivityBean.isActivated()).thenReturn(true); when(nonActivatedActivityBean.isActivated()).thenReturn(false); Collection<SyncBeanDef<Activity>> activityList = new ArrayList<SyncBeanDef<Activity>>(); activityList.add(activatedActivityBean); activityList.add(nonActivatedActivityBean); // This covers the case where the activity manager goes directly to the Errai bean manager. // The list includes all beans, active or otherwise, and the activity manager has to filter them. when(iocManager.lookupBeans(Activity.class)).thenReturn(activityList); // And this covers the case where the activity manager does the lookup via the ActivityBeansCache. // We set this up assuming ActivityBeansCache is well-behaved, and hides the existence of inactive beans. // (of course this assumption is verified in a separate test) ActivityAndMetaInfo activatedActivityAndMetaInfo = new ActivityAndMetaInfo(iocManager, activatedActivityBean, 0, Collections.<String>emptyList()); when(resourceTypeManagerCache.getResourceActivities()).thenReturn(singletonList(activatedActivityAndMetaInfo)); when(activityBeansCache.getActivity("activated activity")).thenReturn(activatedActivityBean); }
public void createActivitiesAndMetaInfo(int priority1, int priority2) { resourceTypeManagerCache.addResourceActivity(new ActivityAndMetaInfo(null, null, priority1, new ArrayList())); resourceTypeManagerCache.addResourceActivity(new ActivityAndMetaInfo(null, null, priority2, new ArrayList())); }
@Test public void testGetResourceTypeDefinitions() { Category process = mock(Category.class); when(process.getName()).thenReturn("PROCESS"); Assertions.assertThat(resourceTypeManagerCache.getResourceTypeDefinitionsByCategory(process)) .isEmpty(); Assertions.assertThat(resourceTypeManagerCache.getResourceTypeDefinitionsByCategory(modelEditorDef.getCategory())) .hasSize(1) .containsExactly(modelEditorDef.getResourceType()); Assertions.assertThat(resourceTypeManagerCache.getResourceTypeDefinitionsByCategory(formEditorDef.getCategory())) .hasSize(1) .containsExactly(formEditorDef.getResourceType()); }
@Before public void setUp() { resourceTypeManagerCache = new ResourceTypeManagerCache(categoriesManagerCache); cache = new ActivityBeansCache(iocManager, newPerspectiveEventEvent, newWorkbenchScreenEvent, resourceTypeManagerCache, experimentalActivitiesAuthorizationManager); }
@Before public void setup() { when(authzManager.authorize(any(Resource.class), any(User.class))).thenReturn(true); when(activitiesAuthorizationManager.authorizeActivity(anyObject())).thenReturn(true); activatedActivity = mock(Activity.class); when(activatedActivity.getIdentifier()).thenReturn("activated activity"); when(activatedActivityBean.getInstance()).thenReturn(activatedActivity); when(activatedActivityBean.isActivated()).thenReturn(true); when(nonActivatedActivityBean.isActivated()).thenReturn(false); Collection<SyncBeanDef<Activity>> activityList = new ArrayList<SyncBeanDef<Activity>>(); activityList.add(activatedActivityBean); activityList.add(nonActivatedActivityBean); // This covers the case where the activity manager goes directly to the Errai bean manager. // The list includes all beans, active or otherwise, and the activity manager has to filter them. when(iocManager.lookupBeans(Activity.class)).thenReturn(activityList); // And this covers the case where the activity manager does the lookup via the ActivityBeansCache. // We set this up assuming ActivityBeansCache is well-behaved, and hides the existence of inactive beans. // (of course this assumption is verified in a separate test) ActivityAndMetaInfo activatedActivityAndMetaInfo = new ActivityAndMetaInfo(iocManager, activatedActivityBean, 0, Collections.<String>emptyList()); when(resourceTypeManagerCache.getResourceActivities()).thenReturn(singletonList(activatedActivityAndMetaInfo)); when(activityBeansCache.getActivity("activated activity")).thenReturn(activatedActivityBean); }
@Test public void testGetResourceTypeDefinitions() { Category process = mock(Category.class); when(process.getName()).thenReturn("PROCESS"); Assertions.assertThat(resourceTypeManagerCache.getResourceTypeDefinitionsByCategory(process)) .isEmpty(); Assertions.assertThat(resourceTypeManagerCache.getResourceTypeDefinitionsByCategory(modelEditorDef.getCategory())) .hasSize(1) .containsExactly(modelEditorDef.getResourceType()); Assertions.assertThat(resourceTypeManagerCache.getResourceTypeDefinitionsByCategory(formEditorDef.getCategory())) .hasSize(1) .containsExactly(formEditorDef.getResourceType()); }
public ActivityBeansCacheUnitTestWrapper() { this.resourceTypeManagerCache = new ResourceTypeManagerCache(new CategoriesManagerCache(new Undefined())); mockDef = mock(SyncBeanDef.class); idMock = "mockDef1"; when(mockDef.getName()).thenReturn(idMock); when(mockDef.getBeanClass()).thenReturn(this.getClass()); availableActivities.add(mockDef); }