diff options
2 files changed, 13 insertions, 10 deletions
diff --git a/org.eclipse.mylyn.oslc.core/src/org/eclipse/mylyn/internal/oslc/core/client/AbstractOslcClient.java b/org.eclipse.mylyn.oslc.core/src/org/eclipse/mylyn/internal/oslc/core/client/AbstractOslcClient.java index 2c1081cf9..a85005218 100644 --- a/org.eclipse.mylyn.oslc.core/src/org/eclipse/mylyn/internal/oslc/core/client/AbstractOslcClient.java +++ b/org.eclipse.mylyn.oslc.core/src/org/eclipse/mylyn/internal/oslc/core/client/AbstractOslcClient.java @@ -14,6 +14,7 @@ package org.eclipse.mylyn.internal.oslc.core.client; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; @@ -378,8 +379,13 @@ public abstract class AbstractOslcClient { return configuration; } - public Collection<AbstractChangeRequest> performQuery(String queryUrl, IProgressMonitor monitor) - throws CoreException { + public Collection<AbstractChangeRequest> performQuery(String query, IProgressMonitor monitor) throws CoreException { + try { + query = URLEncoder.encode(query, "UTF-8"); //$NON-NLS-1$ + } catch (UnsupportedEncodingException e) { + query = URLEncoder.encode(query); + } + final String requestUrl = getConfiguration(monitor).getSimpleQueryUrl() + "?oslc_cm.query=" + query; //$NON-NLS-1$ RequestHandler<Collection<AbstractChangeRequest>> handler = new RequestHandler<Collection<AbstractChangeRequest>>( "Performing Query") { //$NON-NLS-1$ @@ -393,7 +399,7 @@ public abstract class AbstractOslcClient { } }; - return executeMethod(createGetMethod(queryUrl), handler, monitor); + return executeMethod(createGetMethod(requestUrl), handler, monitor); } diff --git a/org.eclipse.mylyn.oslc.tests/src/org/eclipse/mylyn/oslc/cm/tests/RtcOlscTest.java b/org.eclipse.mylyn.oslc.tests/src/org/eclipse/mylyn/oslc/cm/tests/RtcOlscTest.java index 1cb8f0c65..afcb0695c 100644 --- a/org.eclipse.mylyn.oslc.tests/src/org/eclipse/mylyn/oslc/cm/tests/RtcOlscTest.java +++ b/org.eclipse.mylyn.oslc.tests/src/org/eclipse/mylyn/oslc/cm/tests/RtcOlscTest.java @@ -11,7 +11,6 @@ package org.eclipse.mylyn.oslc.cm.tests; -import java.net.URLEncoder; import java.util.Collection; import java.util.List; import java.util.Set; @@ -52,16 +51,16 @@ public class RtcOlscTest extends TestCase { private static final String BASE_URL = "https://192.168.0.3:9443/jazz/oslc/workitems/catalog"; -// private static final String BASE_URL = "https://192.168.0.3:9443/jazz/oslc/contexts/_9Dyg4DLzEd-G-8cuiS4gvg/workitems/services.xml"; + private static final String SERVICE_URL = "https://192.168.0.3:9443/jazz/oslc/contexts/_9Dyg4DLzEd-G-8cuiS4gvg/workitems/services.xml"; @Override protected void setUp() throws Exception { super.setUp(); - this.repository = new TaskRepository("rtc", BASE_URL); + this.repository = new TaskRepository("rtc", SERVICE_URL); this.repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("ADMIN", "ADMIN"), false); this.location = new TaskRepositoryLocationFactory().createWebLocation(repository); - this.client = new AbstractOslcClient(location, new OslcServiceDescriptor(BASE_URL)) { + this.client = new AbstractOslcClient(location, new OslcServiceDescriptor(SERVICE_URL)) { @Override public RepositoryResponse putTaskData(TaskData taskData, Set<TaskAttribute> oldValues, @@ -126,9 +125,7 @@ public class RtcOlscTest extends TestCase { public void testSimpleQuery() throws Exception { List<OslcServiceProvider> services = client.getAvailableServices(BASE_URL, null); OslcServiceProvider desc = services.get(0); - OslcServiceDescriptor serviceDescriptor = client.getServiceDescriptor(desc, null); - Collection<AbstractChangeRequest> result = client.performQuery(serviceDescriptor.getSimpleQueryUrl() - + "?oslc_cm.query=" + URLEncoder.encode("dc:title=\"my first work item\"", "UTF-8"), null); + Collection<AbstractChangeRequest> result = client.performQuery("dc:title=\"my first work item\"", null); assertEquals(1, result.size()); AbstractChangeRequest request = result.iterator().next(); request.getTitle().equals("my first work item"); |