JBoss Tools SVN: r42828 - in trunk/ws: tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/domain and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: xcoulon
Date: 2012-08-01 05:52:33 -0400 (Wed, 01 Aug 2012)
New Revision: 42828
Added:
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/domain/package-info.java
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementChangedProcessor.java
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/WorkbenchUtils.java
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelBuilderTestCase.java
Log:
More testing on JBIDE-12095
JAX-RS facet in JBoss Tools chokes on package-info.java
Modified: trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementChangedProcessor.java
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementChangedProcessor.java 2012-08-01 09:51:49 UTC (rev 42827)
+++ trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementChangedProcessor.java 2012-08-01 09:52:33 UTC (rev 42828)
@@ -113,7 +113,6 @@
}
switch (deltaKind) {
case ADDED:
- //if(element.exists()) { // needed to prevent exception for edge cases such as 'package-info.java' that holds some shadow 'A' type..
switch (elementType) {
case JAVA_PROJECT:
return processAddition(element, metamodel, progressMonitor);
Added: trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/domain/package-info.java
===================================================================
--- trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/domain/package-info.java (rev 0)
+++ trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/domain/package-info.java 2012-08-01 09:52:33 UTC (rev 42828)
@@ -0,0 +1 @@
+package org.jboss.tools.ws.jaxrs.sample.domain;
\ No newline at end of file
Property changes on: trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/projects/org.jboss.tools.ws.jaxrs.tests.sampleproject/src/main/java/org/jboss/tools/ws/jaxrs/sample/domain/package-info.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/WorkbenchUtils.java
===================================================================
--- trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/WorkbenchUtils.java 2012-08-01 09:51:49 UTC (rev 42827)
+++ trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/WorkbenchUtils.java 2012-08-01 09:52:33 UTC (rev 42828)
@@ -893,6 +893,7 @@
return folder.findMember(fileName);
}
+
/**
* Replaces the content of the given resource with the given stream.
*
@@ -901,6 +902,37 @@
* @throws CoreException
* @throws IOException
*/
+ public static void replaceContent(IResource resource, InputStream stream) throws CoreException, IOException {
+ final IProject project = resource.getProject();
+ final IFile file = project.getFile(resource.getProjectRelativePath());
+ if (file.exists()) {
+ file.delete(true, new NullProgressMonitor());
+ }
+ file.create(stream, true, null);
+ LOGGER.debug("Content:");
+ final InputStream contents = file.getContents();
+ final char[] buffer = new char[0x10000];
+ StringBuilder out = new StringBuilder();
+ Reader in = new InputStreamReader(contents, "UTF-8");
+ int read;
+ do {
+ read = in.read(buffer, 0, buffer.length);
+ if (read > 0) {
+ out.append(buffer, 0, read);
+ }
+ } while (read >= 0);
+ LOGGER.debug(out.toString());
+ }
+
+
+ /**
+ * Replaces the content of the given resource with the given stream.
+ *
+ * @param webxmlResource
+ * @param stream
+ * @throws CoreException
+ * @throws IOException
+ */
public static void replaceContent(IResource resource, InputStream stream, boolean useWorkingCopy) throws CoreException, IOException {
final IProject project = resource.getProject();
final IFile file = project.getFile(resource.getProjectRelativePath());
@@ -908,8 +940,6 @@
IBuffer buffer = ((IOpenable) unit).getBuffer();
buffer.setContents(IOUtils.toString(stream));
saveAndClose(unit);
-
-
}
/**
@@ -936,7 +966,7 @@
InputStream stream = FileLocator.openStream(bundle, new Path("resources").append(webxmlReplacementName), false);
assertThat(stream, notNullValue());
if (webxmlResource != null) {
- replaceContent(webxmlResource, stream, false);
+ replaceContent(webxmlResource, stream);
return webxmlResource;
} else {
return createFileFromStream(webInfFolder, "web.xml", stream);
Modified: trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelBuilderTestCase.java
===================================================================
--- trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelBuilderTestCase.java 2012-08-01 09:51:49 UTC (rev 42827)
+++ trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JaxrsMetamodelBuilderTestCase.java 2012-08-01 09:52:33 UTC (rev 42828)
@@ -10,12 +10,17 @@
******************************************************************************/
package org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder;
-import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.Matchers.notNullValue;
import static org.hamcrest.Matchers.nullValue;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
+import java.io.IOException;
+
+import org.apache.commons.io.IOUtils;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -156,5 +161,33 @@
assertThat(metamodel.getAllEndpoints().size(), equalTo(16));
}
+ @Test
+ public void shouldDoNothingWhenPackageInfoAdded() throws CoreException, IOException {
+ // pre-conditions
+ IFolder folder = javaProject.getProject().getFolder("src/main/java/org/jboss/tools/ws/jaxrs/sample/services");
+ // operation
+ WorkbenchUtils.createFileFromStream(folder, "package-info.java",
+ IOUtils.toInputStream("package org.jboss.tools.ws.jaxrs.sample.services;"));
+ // explicitly trigger the project build
+ javaProject.getProject().build(IncrementalProjectBuilder.AUTO_BUILD, null);
+ // verifications: no exception should have been thrown
+ }
+
+ @Test
+ public void shouldDoNothingWhenPackageInfoChanged() throws CoreException, IOException {
+ // pre-conditions
+ JBossJaxrsCorePlugin.getDefault().registerListeners();
+ IFile pkgInfoFile = javaProject.getProject().getFile("src/main/java/org/jboss/tools/ws/jaxrs/sample/services/package-info.java");
+ pkgInfoFile.create(IOUtils.toInputStream(""), true, new NullProgressMonitor());
+ // operation
+ WorkbenchUtils.replaceContent(pkgInfoFile, IOUtils.toInputStream("package org.jboss.tools.ws.jaxrs.sample;"), true);
+ WorkbenchUtils.replaceContent(pkgInfoFile, IOUtils.toInputStream("package org.jboss.tools.ws.jaxrs.sample.services;"), true);
+ // explicitly trigger the project build
+ //javaProject.getProject().build(IncrementalProjectBuilder.AUTO_BUILD, null);
+ // verifications: no exception should have been thrown
+
+ }
+
+
}
13 years, 5 months
JBoss Tools SVN: r42827 - in trunk/ws: tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: xcoulon
Date: 2012-08-01 05:51:49 -0400 (Wed, 01 Aug 2012)
New Revision: 42827
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementDeltaFilter.java
trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementDeltaFilterTestCase.java
Log:
Fixed - JBIDE-12095
JAX-RS facet in JBoss Tools chokes on package-info.java
Modified: trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementDeltaFilter.java
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementDeltaFilter.java 2012-08-01 09:20:22 UTC (rev 42826)
+++ trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementDeltaFilter.java 2012-08-01 09:51:49 UTC (rev 42827)
@@ -37,6 +37,7 @@
import java.util.Iterator;
import java.util.List;
+import org.eclipse.core.resources.IResource;
import org.eclipse.jdt.core.ElementChangedEvent;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaElementDelta;
@@ -122,7 +123,8 @@
int deltaKind = event.getDeltaKind();
IJavaElement element = event.getElement();
// prevent processing java elements in a closed java project
- if (element.getJavaProject() != null && !element.getJavaProject().getProject().isOpen()) {
+ // prevent processing of any file named 'package-info.java'
+ if (isProjectClosed(element) || isPackageInfoFile(element)) {
return false;
}
int flags = event.getFlags();
@@ -139,6 +141,24 @@
return match;
}
+ /**
+ * Returns true if the element resource is a file named 'package-info.java' (whatever the containing folder)
+ * @param element
+ * @return
+ */
+ private boolean isPackageInfoFile(IJavaElement element) {
+ return element.getResource() != null && element.getResource().getType() == IResource.FILE && element.getResource().getName().equals("package-info.java");
+ }
+
+ /**
+ * Returns true if the enclosing project is closed
+ * @param element
+ * @return
+ */
+ private boolean isProjectClosed(IJavaElement element) {
+ return element.getJavaProject() != null && !element.getJavaProject().getProject().isOpen();
+ }
+
protected boolean apply(int elementKind, int deltaKind, int eventType, int flags, boolean workingCopy) {
Rule matcher = new Rule(elementKind, deltaKind, eventType, workingCopy ? WORKING_COPY : PRIMARY_COPY, flags);
for (Iterator<Rule> iterator = rules.iterator(); iterator.hasNext();) {
Modified: trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementDeltaFilterTestCase.java
===================================================================
--- trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementDeltaFilterTestCase.java 2012-08-01 09:20:22 UTC (rev 42826)
+++ trunk/ws/tests/org.jboss.tools.ws.jaxrs.core.test/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/builder/JavaElementDeltaFilterTestCase.java 2012-08-01 09:51:49 UTC (rev 42827)
@@ -26,6 +26,7 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import org.eclipse.core.resources.IResource;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IMethod;
@@ -100,5 +101,20 @@
IJavaElement element = createMock(IMethod.class, METHOD);
assertFalse("Wrong result", filter.apply(createEvent(element, CHANGED, POST_RECONCILE, NO_FLAG)));
}
+
+ @Test
+ public void shouldNotAcceptChangesInPackageInfoFile() {
+ IJavaElement element = createMock(IType.class, ANNOTATION, workingCopy);
+ IResource resource = mock(IResource.class);
+ when(element.getResource()).thenReturn(resource);
+ when(resource.getType()).thenReturn(IResource.FILE);
+ when(resource.getName()).thenReturn("package-info.java");
+ assertFalse("Wrong result", filter.apply(createEvent(element, ADDED, POST_RECONCILE, NO_FLAG)));
+ assertFalse("Wrong result", filter.apply(createEvent(element, ADDED, POST_CHANGE, NO_FLAG)));
+ assertFalse("Wrong result", filter.apply(createEvent(element, CHANGED, POST_RECONCILE, NO_FLAG)));
+ assertFalse("Wrong result", filter.apply(createEvent(element, CHANGED, POST_CHANGE, NO_FLAG)));
+ assertFalse("Wrong result", filter.apply(createEvent(element, REMOVED, POST_RECONCILE, NO_FLAG)));
+ assertFalse("Wrong result", filter.apply(createEvent(element, REMOVED, POST_CHANGE, NO_FLAG)));
+ }
}
13 years, 5 months
JBoss Tools SVN: r42826 - trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain.
by jbosstools-commits@lists.jboss.org
Author: xcoulon
Date: 2012-08-01 05:20:22 -0400 (Wed, 01 Aug 2012)
New Revision: 42826
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsMetamodel.java
Log:
Fixing side-effect on JBIDE-10115 - Remove need for jax-rs-api.jar
Modified: trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsMetamodel.java
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsMetamodel.java 2012-08-01 08:31:12 UTC (rev 42825)
+++ trunk/ws/plugins/org.jboss.tools.ws.jaxrs.core/src/org/jboss/tools/ws/jaxrs/core/internal/metamodel/domain/JaxrsMetamodel.java 2012-08-01 09:20:22 UTC (rev 42826)
@@ -22,7 +22,7 @@
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-
+import static org.jboss.tools.ws.jaxrs.core.internal.metamodel.domain.JaxrsBuiltinHttpMethod.*;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -111,9 +111,13 @@
* </ul>
*/
private void preloadHttpMethods() {
- httpMethods.addAll(Arrays.asList(JaxrsBuiltinHttpMethod.GET, JaxrsBuiltinHttpMethod.POST,
- JaxrsBuiltinHttpMethod.PUT, JaxrsBuiltinHttpMethod.DELETE, JaxrsBuiltinHttpMethod.HEAD,
- JaxrsBuiltinHttpMethod.OPTIONS));
+ httpMethods.addAll(Arrays.asList(GET, POST, PUT, DELETE, HEAD, OPTIONS));
+ elementsIndex.put(GET.getFullyQualifiedName(), new HashSet<JaxrsBaseElement>(Arrays.asList(GET)));
+ elementsIndex.put(POST.getFullyQualifiedName(), new HashSet<JaxrsBaseElement>(Arrays.asList(POST)));
+ elementsIndex.put(PUT.getFullyQualifiedName(), new HashSet<JaxrsBaseElement>(Arrays.asList(PUT)));
+ elementsIndex.put(DELETE.getFullyQualifiedName(), new HashSet<JaxrsBaseElement>(Arrays.asList(DELETE)));
+ elementsIndex.put(OPTIONS.getFullyQualifiedName(), new HashSet<JaxrsBaseElement>(Arrays.asList(OPTIONS)));
+ elementsIndex.put(HEAD.getFullyQualifiedName(), new HashSet<JaxrsBaseElement>(Arrays.asList(HEAD)));
}
/*
@@ -348,10 +352,18 @@
public IJaxrsHttpMethod getHttpMethod(final String annotationName) throws CoreException {
IType annotationType = JdtUtils.resolveType(annotationName, javaProject, new NullProgressMonitor());
if (annotationType != null) {
- final JaxrsBaseElement element = getElement(annotationType);
+ // look for custom HTTP Methods
+ JaxrsBaseElement element = getElement(annotationType);
if (element != null && element.getElementCategory() == EnumElementCategory.HTTP_METHOD) {
return (IJaxrsHttpMethod) element;
}
+ // if not found, look for built-in HTTP Methods
+ else if(element == null) {
+ element = getElement(annotationType.getFullyQualifiedName());
+ if (element != null && element.getElementCategory() == EnumElementCategory.HTTP_METHOD) {
+ return (IJaxrsHttpMethod) element;
+ }
+ }
}
return null;
}
@@ -370,8 +382,14 @@
if (element == null) {
return null;
}
- final String handleIdentifier = element.getHandleIdentifier();
- final Set<JaxrsBaseElement> elements = elementsIndex.get(handleIdentifier);
+ return getElement(element.getHandleIdentifier());
+ }
+
+ protected JaxrsBaseElement getElement(final String elementName) {
+ if (elementName == null) {
+ return null;
+ }
+ final Set<JaxrsBaseElement> elements = elementsIndex.get(elementName);
if (elements == null || elements.isEmpty()) {
return null;
}
13 years, 5 months
JBoss Tools SVN: r42825 - trunk/central/tests/org.jboss.tools.central.test.ui.bot/src/org/jboss/tools/central/test/ui/bot.
by jbosstools-commits@lists.jboss.org
Author: rhopp
Date: 2012-08-01 04:31:12 -0400 (Wed, 01 Aug 2012)
New Revision: 42825
Modified:
trunk/central/tests/org.jboss.tools.central.test.ui.bot/src/org/jboss/tools/central/test/ui/bot/CreateProjectsWithServerTest.java
Log:
Jenkins debugging
Modified: trunk/central/tests/org.jboss.tools.central.test.ui.bot/src/org/jboss/tools/central/test/ui/bot/CreateProjectsWithServerTest.java
===================================================================
--- trunk/central/tests/org.jboss.tools.central.test.ui.bot/src/org/jboss/tools/central/test/ui/bot/CreateProjectsWithServerTest.java 2012-08-01 00:47:12 UTC (rev 42824)
+++ trunk/central/tests/org.jboss.tools.central.test.ui.bot/src/org/jboss/tools/central/test/ui/bot/CreateProjectsWithServerTest.java 2012-08-01 08:31:12 UTC (rev 42825)
@@ -149,8 +149,10 @@
@Test
public void projectExamplesSectionTest(){
SWTBotTwistie twistieBot = bot.twistieByLabel("JBoss Quickstarts");
- while (!twistieBot.isExpanded()){
+ int counter = 0;
+ while (!twistieBot.isExpanded() || counter>10){
twistieBot.toggle();
+ counter++;
}
/*if (!twistieBot.isExpanded()){
twistieBot.toggle();
13 years, 5 months
JBoss Tools SVN: r42824 - trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util.
by jbosstools-commits@lists.jboss.org
Author: dgolovin
Date: 2012-07-31 20:47:12 -0400 (Tue, 31 Jul 2012)
New Revision: 42824
Modified:
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util/TypeResolutionCache.java
Log:
removed null check because passed parameters are checked before calling this private function
Modified: trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util/TypeResolutionCache.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util/TypeResolutionCache.java 2012-07-31 22:55:16 UTC (rev 42823)
+++ trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/util/TypeResolutionCache.java 2012-08-01 00:47:12 UTC (rev 42824)
@@ -74,7 +74,6 @@
}
private String __resolveType(IType type, String typeName) {
- if(type == null || typeName == null) return null;
try {
String resolvedArray[][] = type.resolveType(typeName);
// resolvedArray == null for primitive types
13 years, 5 months