List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getResource
IResource getResource();
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElement11ChangedProcessingTestCase.java
License:Open Source License
@Test public void shouldRemoveProviderWhenRemovingSourceFolder() throws CoreException { // pre-conditions: remove noise from other folders metamodelMonitor.removeFolder("src", "main", "webapp"); metamodelMonitor.removePackageFragmentRoot("src/test/java"); final IType type = metamodelMonitor .resolveType("org.jboss.tools.ws.jaxrs.sample.services.providers.EntityNotFoundExceptionMapper"); metamodelMonitor.createProvider(type); metamodelMonitor.resetElementChangesNotifications(); // operation/*from w ww . j a v a2s .c o m*/ final IPackageFragmentRoot sourceFolder = metamodelMonitor.resolvePackageFragmentRoot("src/main/java"); sourceFolder.getResource().delete(true, null); metamodelMonitor.processEvent(sourceFolder, REMOVED); // verifications: only 6 built-in HTTP Methodsleft in the metamodel assertThat(metamodel.findAllElements().size(), equalTo(6)); }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementDeltaFilterTestCase.java
License:Open Source License
@Test public void shouldNotAcceptChangesInJarFile() { final IPackageFragmentRoot element = createMock(IPackageFragmentRoot.class, PACKAGE_FRAGMENT_ROOT); final IResource resource = mock(IResource.class); when(element.getResource()).thenReturn(resource); when(element.isArchive()).thenReturn(true); when(resource.getType()).thenReturn(IResource.FILE); when(resource.getName()).thenReturn("somearchive.jar"); assertFalse("Wrong result", filter.apply(createEvent(element, ADDED, POST_RECONCILE, Flags.NONE))); assertFalse("Wrong result", filter.apply(createEvent(element, ADDED, POST_CHANGE, Flags.NONE))); assertFalse("Wrong result", filter.apply(createEvent(element, CHANGED, POST_RECONCILE, Flags.NONE))); assertFalse("Wrong result", filter.apply(createEvent(element, CHANGED, POST_CHANGE, Flags.NONE))); assertFalse("Wrong result", filter.apply(createEvent(element, REMOVED, POST_RECONCILE, Flags.NONE))); assertFalse("Wrong result", filter.apply(createEvent(element, REMOVED, POST_CHANGE, Flags.NONE))); }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementDeltaScanner.java
License:Open Source License
/** * Recursively analyse the given Java Element Delta. * // w ww .j av a 2 s .c o m * @param delta * @param eventType * @throws CoreException * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=100267 */ private List<JavaElementChangedEvent> scanDelta(final IJavaElementDelta delta, final int eventType) throws CoreException { final List<JavaElementChangedEvent> events = new ArrayList<JavaElementChangedEvent>(); final IJavaElement element = delta.getElement(); // skip as the project is closed if (element == null) { Logger.debug("** skipping this build because the delta element is null **"); return Collections.emptyList(); } else if (element.getElementType() == IJavaElement.JAVA_PROJECT && !element.getJavaProject().getProject().isOpen() && delta.getFlags() != F_OPENED) { Logger.debug("** skipping this build because the java project is closed. **"); return Collections.emptyList(); } else if ((element.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT)) { final IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) element; if (!packageFragmentRoot.isExternal() && (packageFragmentRoot.getResource() == null || !packageFragmentRoot.getResource().exists())) { return Collections.emptyList(); } } else if (element.getResource() == null || !element.getResource().exists()) { return Collections.emptyList(); } final int elementKind = element.getElementType(); final int deltaKind = retrieveDeltaKind(delta); final Flags flags = new Flags(delta.getFlags()); if (elementKind == JAVA_PROJECT) { final JavaElementChangedEvent event = new JavaElementChangedEvent(element, delta.getKind(), eventType, null, new Flags(delta.getFlags())); if (javaElementChangedEventFilter.apply(event)) { events.add(event); // skip anything below return events; } } final CompilationUnit compilationUnitAST = getCompilationUnitAST(delta); if (elementKind == COMPILATION_UNIT) { final ICompilationUnit compilationUnit = (ICompilationUnit) element; // compilationUnitAST is null when the given compilation unit'w // working copy is being commited (ie, Java Editor is being closed // for the given compilation unit, etc.) if (compilationUnit.exists() // see https://issues.jboss.org/browse/JBIDE-12760: compilationUnit may not exist && compilationUnit.isWorkingCopy() && compilationUnitAST != null) { // assuming possible changes in the method signatures (return type, // param types and param annotations). Other changes in methods // (renaming, adding/removing params) result in add+remove // events on the given method itself. if (requiresDiffsComputation(flags)) { for (IType type : compilationUnit.getAllTypes()) { for (IMethod javaMethod : type.getMethods()) { final JavaElementChangedEvent event = new JavaElementChangedEvent(javaMethod, CHANGED, eventType, compilationUnitAST, new Flags(F_SIGNATURE)); if (javaElementChangedEventFilter.apply(event)) { events.add(event); } } } } } } // element is part of the compilation unit else if (compilationUnitAST != null) { final JavaElementChangedEvent event = new JavaElementChangedEvent(element, deltaKind, eventType, compilationUnitAST, flags); if (javaElementChangedEventFilter.apply(event)) { events.add(event); } } // continue with children elements, both on annotations and other java // elements. for (IJavaElementDelta affectedChild : delta.getAffectedChildren()) { events.addAll(scanDelta(affectedChild, eventType)); } for (IJavaElementDelta annotation : delta.getAnnotationDeltas()) { events.addAll(scanDelta(annotation, eventType)); } return events; }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessingTestCase.java
License:Open Source License
@Test public void shouldAddApplicationHttpMethodsResourcesAndProvidersWhenAddingSourceFolderWithExistingMetamodel() throws CoreException { // pre-conditions metamodelMonitor.resetElementChangesNotifications(); // operation//from w ww . j a va2s. com final IPackageFragmentRoot sourceFolder = metamodelMonitor.resolvePackageFragmentRoot("src/main/java"); metamodelMonitor.processResourceEvent(sourceFolder.getResource(), ADDED); // verifications // 1 application + 1 HttpMethod + 7 Resources and their methods + 2 // Providers assertThat(metamodelMonitor.getElementChanges().size(), equalTo(42)); // all HttpMethods, Resources, ResourceMethods and ResourceFields. only // application is available: the java-based // one found in src/main/java assertThat(metamodel.findElements(javaProject).size(), equalTo(47)); }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessingTestCase.java
License:Open Source License
@Test @Ignore("Ignoring for now: removing and creating a new metamodel should be tested in JaxrsMetamodelTestCase") public void shouldAddHttpMethodsAndResourcesWhenAddingSourceFolderWithoutExistingMetamodel() throws CoreException, IOException { // pre-conditions // remove the metamodel metamodel.remove();//ww w . ja va 2 s. c o m metamodel = JaxrsMetamodel.create(javaProject); metamodelMonitor.resetElementChangesNotifications(); // operation final IPackageFragmentRoot sourceFolder = metamodelMonitor.resolvePackageFragmentRoot("src/main/java"); metamodelMonitor.processResourceEvent(sourceFolder.getResource(), ADDED); // verifications // 1 application + 1 HttpMethod + 3 RootResources + 2 Subresources + 5 // Providers: the whole project is used to build the metamodel. assertThat(metamodel, notNullValue()); assertThat(metamodelMonitor.getElementChanges().size(), equalTo(14)); // all Applications, HttpMethods, Resources, ResourceMethods and // ResourceFields specific to the project assertThat(metamodel.findElements(javaProject).size(), equalTo(41)); }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessingTestCase.java
License:Open Source License
@Test public void shouldNotAddAnythingAddingBinaryLib() throws CoreException { // pre-conditions final IPackageFragmentRoot lib = metamodelMonitor.resolvePackageFragmentRoot("lib/jaxrs-api-2.0.1.GA.jar"); metamodelMonitor.resetElementChangesNotifications(); // operation// ww w.j a v a2s. c o m metamodelMonitor.processResourceEvent(lib.getResource(), ADDED); // verifications: jar should not be taken into account, even if if it // contains matching elements... assertThat(metamodelMonitor.getElementChanges().size(), equalTo(0)); }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessingTestCase.java
License:Open Source License
@Test public void shouldRemoveJavaApplicationWhenRemovingSourceFolder() throws CoreException { // pre-conditions metamodelMonitor.createJavaApplication("org.jboss.tools.ws.jaxrs.sample.services.RestApplication"); metamodelMonitor.resetElementChangesNotifications(); // operation//www .j av a 2 s.c o m final IPackageFragmentRoot sourceFolder = metamodelMonitor.resolvePackageFragmentRoot("src/main/java"); metamodelMonitor.processResourceEvent(sourceFolder.getResource(), REMOVED); // verifications assertThat(metamodelMonitor.getElementChanges().size(), equalTo(1)); assertThat(metamodelMonitor.getElementChanges().get(0).getElement().getElementKind().getCategory(), equalTo(EnumElementCategory.APPLICATION)); assertThat(metamodelMonitor.getElementChanges().get(0).getElement(), is(notNullValue())); assertThat(metamodelMonitor.getElementChanges().get(0).getDeltaKind(), equalTo(REMOVED)); // 6 built-in HTTP Methods assertThat(metamodel.findElements(javaProject).size(), equalTo(6)); }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessingTestCase.java
License:Open Source License
@Test public void shouldRemoveHttpMethodWhenRemovingSourceFolder() throws CoreException { // pre-conditions final IType type = metamodelMonitor.resolveType("org.jboss.tools.ws.jaxrs.sample.services.BAR"); JaxrsHttpMethod.from(type).withMetamodel(metamodel).build(); // metamodel.add(httpMethod); final IPackageFragmentRoot sourceFolder = metamodelMonitor.resolvePackageFragmentRoot("src/main/java"); metamodelMonitor.resetElementChangesNotifications(); // operation//from w w w. j a v a 2 s . co m metamodelMonitor.processResourceEvent(sourceFolder.getResource(), REMOVED); // verifications assertThat(metamodelMonitor.getElementChanges().size(), equalTo(1)); assertThat(metamodelMonitor.getElementChanges().get(0).getElement().getElementKind().getCategory(), equalTo(EnumElementCategory.HTTP_METHOD)); assertThat(metamodelMonitor.getElementChanges().get(0).getElement(), is(notNullValue())); assertThat(metamodelMonitor.getElementChanges().get(0).getDeltaKind(), equalTo(REMOVED)); // 6 built-in HTTP Methods assertThat(metamodel.findElements(javaProject).size(), equalTo(6)); }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessingTestCase.java
License:Open Source License
@Test public void shouldRemoveResourceWhenRemovingSourceFolder() throws CoreException { // pre-conditions final IPackageFragmentRoot sourceFolder = metamodelMonitor.resolvePackageFragmentRoot("src/main/java"); metamodelMonitor.createResource("org.jboss.tools.ws.jaxrs.sample.services.CustomerResource"); metamodelMonitor.resetElementChangesNotifications(); // operation/* w w w .j av a 2 s.co m*/ metamodelMonitor.processResourceEvent(sourceFolder.getResource(), REMOVED); // verifications assertThat(metamodelMonitor.getElementChanges().size(), equalTo(7)); // only built-in HTTP Methods left assertThat(metamodel.findElements(javaProject).size(), equalTo(6)); }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessingTestCase.java
License:Open Source License
@Test public void shouldRemoveProviderWhenRemovingSourceFolder() throws CoreException { // pre-conditions metamodelMonitor/*from w w w.j a v a 2 s . c o m*/ .createProvider("org.jboss.tools.ws.jaxrs.sample.services.providers.EntityNotFoundExceptionMapper"); final IPackageFragmentRoot sourceFolder = metamodelMonitor.resolvePackageFragmentRoot("src/main/java"); metamodelMonitor.resetElementChangesNotifications(); // operation delete(sourceFolder.getResource()); metamodelMonitor.processResourceEvent(sourceFolder.getResource(), REMOVED); // verifications assertThat(metamodelMonitor.getElementChanges().size(), equalTo(1)); // 1 provider assertThat(metamodelMonitor.getElementChanges().get(0).getDeltaKind(), equalTo(REMOVED)); assertThat(metamodelMonitor.getElementChanges().get(0).getElement().getElementKind().getCategory(), equalTo(EnumElementCategory.PROVIDER)); // 6 built-in HTTP Methods only assertThat(metamodel.findElements(javaProject).size(), equalTo(6)); }