[jbosstools-issues] [JBoss JIRA] Updated: (JBIDE-7930) patch for less static urls for deltacloud

Andre Dietisheim (JIRA) jira-events at lists.jboss.org
Fri Feb 4 18:56:39 EST 2011


     [ https://issues.jboss.org/browse/JBIDE-7930?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andre Dietisheim updated JBIDE-7930:
------------------------------------

    Fix Version/s: LATER
                       (was: 3.2.x)


> patch for less static urls for deltacloud
> -----------------------------------------
>
>                 Key: JBIDE-7930
>                 URL: https://issues.jboss.org/browse/JBIDE-7930
>             Project: Tools (JBoss Tools)
>          Issue Type: Feature Request
>          Components: deltacloud
>            Reporter: Benjamin Browning
>            Assignee: Andre Dietisheim
>             Fix For: LATER
>
>
> (created by max based on mail from ben)
> The patch below is a stab at making your deltacloud client use dynamic URLs instead of hardcoding "/api/images" and so forth.
> Note that with this patch you're also expected to provide the complete URL to the API endpoint - http://try.steamcannon.org/deltacloud/api instead of http://try.steamcannon.org/deltacloud for example.
> With SteamCannon's next release we'll have a Deltacloud endpoint exposed per environment which should allow your existing tooling to view, start, and stop instances inside a running environment. This is the first step towards the overall SteamCannon API which will come shortly after. The URLs we provide for the Deltacloud endpoints didn't match the hardcoded ones in the client so I figured this was as good of a time as any to make it more dynamic.
> Ben
> ---
> .../jboss/tools/deltacloud/core/DeltaCloud.java    |    3 +-
> .../core/client/DeltaCloudClientImpl.java          |   60 +++++++++++++++-----
> .../client/request/AbstractDeltaCloudRequest.java  |    2 +-
> .../client/request/AbstractListObjectsRequest.java |    7 +--
> .../core/client/request/CreateInstanceRequest.java |   13 ++--
> .../client/request/ListHardwareProfileRequest.java |    9 +--
> .../request/ListHardwareProfilesRequest.java       |    6 +-
> .../core/client/request/ListImageRequest.java      |    9 +--
> .../core/client/request/ListImagesRequest.java     |    6 +-
> .../core/client/request/ListInstanceRequest.java   |    9 +--
> .../core/client/request/ListInstancesRequest.java  |    6 +-
> .../core/client/request/ListRealmRequest.java      |    9 +--
> .../core/client/request/ListRealmsRequest.java     |    6 +-
> .../tools/deltacloud/core/client/utils/UrlMap.java |   19 ++++++
> 14 files changed, 102 insertions(+), 62 deletions(-)
> create mode 100644 src/org/jboss/tools/deltacloud/core/client/utils/UrlMap.java
> diff --git a/src/org/jboss/tools/deltacloud/core/DeltaCloud.java b/src/org/jboss/tools/deltacloud/core/DeltaCloud.java
> index 5374bc4..87dd632 100644
> --- a/src/org/jboss/tools/deltacloud/core/DeltaCloud.java
> +++ b/src/org/jboss/tools/deltacloud/core/DeltaCloud.java
> @@ -10,7 +10,6 @@
>  *******************************************************************************/
> package org.jboss.tools.deltacloud.core;
> -import java.net.MalformedURLException;
> import java.text.MessageFormat;
> import java.util.ArrayList;
> import java.util.Iterator;
> @@ -147,7 +146,7 @@ public class DeltaCloud extends ObservablePojo {
> 			throws DeltaCloudException {
> 		try {
> 			return new DeltaCloudClientImpl(url, username, password);
> -		} catch (MalformedURLException e) {
> +		} catch (Exception e) {
> 			throw new DeltaCloudException(MessageFormat.format("Could not access cloud at {0}", url), e);
> 		}
> 	}
> diff --git a/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java b/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java
> index dcaefde..2e39542 100644
> --- a/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java
> +++ b/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java
> @@ -65,6 +65,7 @@ import org.jboss.tools.deltacloud.core.client.request.ListRealmRequest;
> import org.jboss.tools.deltacloud.core.client.request.ListRealmsRequest;
> import org.jboss.tools.deltacloud.core.client.request.PerformInstanceActionRequest;
> import org.jboss.tools.deltacloud.core.client.request.TypeRequest;
> +import org.jboss.tools.deltacloud.core.client.utils.UrlMap;
> import org.w3c.dom.Document;
> import org.w3c.dom.NamedNodeMap;
> import org.w3c.dom.Node;
> @@ -90,20 +91,22 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {
> 	}
> 	private URL baseUrl;
> +	private UrlMap urlMap;
> 	private String username;
> 	private String password;
> -	public DeltaCloudClientImpl(String url) throws MalformedURLException {
> +	public DeltaCloudClientImpl(String url) throws MalformedURLException, DeltaCloudClientException {
> 		this(url, null, null);
> 	}
> -	public DeltaCloudClientImpl(String url, String username, String password) throws MalformedURLException {
> +	public DeltaCloudClientImpl(String url, String username, String password) throws MalformedURLException, DeltaCloudClientException{
> 		logger.debug("Creating new Delta Cloud Client for Server: " + url);
> 		this.baseUrl = new URL(url);
> 		this.username = username;
> 		this.password = password;
> +		this.urlMap = getUrlMap();
> 	}
> 	protected String sendRequest(DeltaCloudRequest deltaCloudRequest) throws DeltaCloudClientException {
> @@ -181,7 +184,7 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {
> 		default:
> 			request = new HttpGet(url);
> 		}
> -		request.setHeader("Accept", "application/xml;q=1");
> +		request.setHeader("Accept", "application/xml");
> 		return request;
> 	}
> @@ -248,7 +251,7 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {
> 	@Override
> 	public Instance createInstance(String imageId) throws DeltaCloudClientException {
> -		return buildInstance(sendRequest(new CreateInstanceRequest(baseUrl, imageId)));
> +		return buildInstance(sendRequest(new CreateInstanceRequest(urlMap, imageId)));
> 	}
> 	@Override
> @@ -263,49 +266,49 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {
> 	}
> 	public Instance createInstance(String imageId, String profileId, String realmId, String name, String keyname, String memory, String storage) throws DeltaCloudClientException { 
> -		return buildInstance(sendRequest(new CreateInstanceRequest(baseUrl, imageId, profileId, realmId, name, keyname, memory, storage)));
> +		return buildInstance(sendRequest(new CreateInstanceRequest(urlMap, imageId, profileId, realmId, name, keyname, memory, storage)));
> 	}
> 	@Override
> 	public HardwareProfile listProfile(String profileId) throws DeltaCloudClientException {
> -		return buildDeltaCloudObject(HardwareProfile.class, sendRequest(new ListHardwareProfileRequest(baseUrl, profileId)));
> +		return buildDeltaCloudObject(HardwareProfile.class, sendRequest(new ListHardwareProfileRequest(urlMap, profileId)));
> 	}
> 	@Override
> 	public List<HardwareProfile> listProfiles() throws DeltaCloudClientException {
> 		return listDeltaCloudObjects(HardwareProfile.class, 
> -				new ListHardwareProfilesRequest(baseUrl),"hardware_profile");
> +				new ListHardwareProfilesRequest(urlMap),"hardware_profile");
> 	}
> 	@Override
> 	public List<Image> listImages() throws DeltaCloudClientException {
> -		return listDeltaCloudObjects(Image.class, new ListImagesRequest(baseUrl), "image");
> +		return listDeltaCloudObjects(Image.class, new ListImagesRequest(urlMap), "image");
> 	}
> 	@Override
> 	public Image listImages(String imageId) throws DeltaCloudClientException {
> -		return JAXB.unmarshal(new StringReader(sendRequest(new ListImageRequest(baseUrl, imageId))), Image.class);
> +		return JAXB.unmarshal(new StringReader(sendRequest(new ListImageRequest(urlMap, imageId))), Image.class);
> 	}
> 	@Override
> 	public List<Instance> listInstances() throws DeltaCloudClientException {
> -		return listDeltaCloudObjects(Instance.class, new ListInstancesRequest(baseUrl), "instance");
> +		return listDeltaCloudObjects(Instance.class, new ListInstancesRequest(urlMap), "instance");
> 	}
> 	@Override
> 	public Instance listInstances(String instanceId) throws DeltaCloudClientException {
> //		return JAXB.unmarshal(new StringReader(sendRequest(new ListInstanceRequest(baseUrl, instanceId))), Instance.class);
> -		return buildInstance(sendRequest(new ListInstanceRequest(baseUrl, instanceId)));
> +		return buildInstance(sendRequest(new ListInstanceRequest(urlMap, instanceId)));
> 	}
> 	@Override
> 	public List<Realm> listRealms() throws DeltaCloudClientException {
> -		return listDeltaCloudObjects(Realm.class, new ListRealmsRequest(baseUrl), "realm");
> +		return listDeltaCloudObjects(Realm.class, new ListRealmsRequest(urlMap), "realm");
> 	}
> 	@Override
> 	public Realm listRealms(String realmId) throws DeltaCloudClientException {
> -		return JAXB.unmarshal(new StringReader(sendRequest(new ListRealmRequest(baseUrl, realmId))), Realm.class);
> +		return JAXB.unmarshal(new StringReader(sendRequest(new ListRealmRequest(urlMap, realmId))), Realm.class);
> 	}
> 	/**
> @@ -395,7 +398,7 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {
> 		} catch (DeltaCloudClientException e) {
> 			throw e;
> 		} catch (Exception e) {
> -			DeltaCloudClientException newException = new DeltaCloudClientException(e.getLocalizedMessage());
> +			DeltaCloudClientException newException = new DeltaCloudClientException(e.getLocalizedMessage(), e);
> 			throw newException;
> 		}
> 	}
> @@ -605,7 +608,7 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {
> 			throw new DeltaCloudClientException(MessageFormat.format("Could not list object of type {0}", clazz), e);
> 		}
> 	}
> -
> +	
> 	private Document getDocument(String response) throws ParserConfigurationException,
> 			SAXException, IOException {
> 		InputSource is = new InputSource(new StringReader(response));
> @@ -657,4 +660,31 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {
> 	private interface INodeVisitor {
> 		public void visit(Node node) throws Exception;
> 	}
> +	
> +	private UrlMap getUrlMap() throws DeltaCloudClientException {
> +	    UrlMap map = new UrlMap();
> +	    DeltaCloudRequest request = new DeltaCloudRequest() {
> +            public URL getUrl() throws MalformedURLException {
> +                return baseUrl;
> +            }
> +            public HttpMethod getHttpMethod() {
> +                return HttpMethod.GET;
> +            }
> +        };
> +        try {
> +            Document document = getDocument(sendRequest(request));
> +            NodeList linksList = document.getElementsByTagName("link");
> +            for (int i = 0; i < linksList.getLength(); i++) {
> +                NamedNodeMap attributes = linksList.item(i).getAttributes();
> +                String rel = attributes.getNamedItem("rel").getNodeValue();
> +                String href = attributes.getNamedItem("href").getNodeValue();
> +                map.put(rel, new URL(href));
> +            }
> +        } catch (DeltaCloudClientException e) {
> +            throw e;
> +        } catch (Exception e) {
> +            throw new DeltaCloudClientException(MessageFormat.format("Could not create url map for {0}", baseUrl), e);
> +        }
> +        return map;
> +	}
> }
> diff --git a/src/org/jboss/tools/deltacloud/core/client/request/AbstractDeltaCloudRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/AbstractDeltaCloudRequest.java
> index b8aca04..16f34b2 100644
> --- a/src/org/jboss/tools/deltacloud/core/client/request/AbstractDeltaCloudRequest.java
> +++ b/src/org/jboss/tools/deltacloud/core/client/request/AbstractDeltaCloudRequest.java
> @@ -30,7 +30,7 @@ public abstract class AbstractDeltaCloudRequest implements DeltaCloudRequest {
> 	protected abstract String doCreateUrl(UrlBuilder urlBuilder);
> 	protected UrlBuilder createUrlBuilder(URL baseURL) {
> -		return new UrlBuilder(baseURL).path(API_PATH_SEGMENT);
> +		return new UrlBuilder(baseURL);
> 	}
> 	
> 	public URL getUrl() throws MalformedURLException {
> diff --git a/src/org/jboss/tools/deltacloud/core/client/request/AbstractListObjectsRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/AbstractListObjectsRequest.java
> index 7ea9ca1..9947813 100644
> --- a/src/org/jboss/tools/deltacloud/core/client/request/AbstractListObjectsRequest.java
> +++ b/src/org/jboss/tools/deltacloud/core/client/request/AbstractListObjectsRequest.java
> @@ -24,16 +24,13 @@ import org.jboss.tools.deltacloud.core.client.utils.UrlBuilder;
>  * @see ListInstancesRequest
>  */
> public abstract class AbstractListObjectsRequest extends AbstractDeltaCloudRequest {
> -	
> -	private String objectType;
> -	public AbstractListObjectsRequest(URL baseUrl, String objectType) {
> +	public AbstractListObjectsRequest(URL baseUrl) {
> 		super(baseUrl, HttpMethod.GET);
> -		this.objectType = objectType;
> 	}
> 	@Override
> 	protected String doCreateUrl(UrlBuilder urlBuilder) {
> -		return urlBuilder.path(objectType).toString();
> +		return urlBuilder.toString();
> 	}
> }
> diff --git a/src/org/jboss/tools/deltacloud/core/client/request/CreateInstanceRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/CreateInstanceRequest.java
> index c315f18..782ec36 100644
> --- a/src/org/jboss/tools/deltacloud/core/client/request/CreateInstanceRequest.java
> +++ b/src/org/jboss/tools/deltacloud/core/client/request/CreateInstanceRequest.java
> @@ -10,9 +10,8 @@
>  ******************************************************************************/
> package org.jboss.tools.deltacloud.core.client.request;
> -import java.net.URL;
> -
> import org.jboss.tools.deltacloud.core.client.utils.UrlBuilder;
> +import org.jboss.tools.deltacloud.core.client.utils.UrlMap;
> /**
>  * Creates a new instance
> @@ -27,13 +26,13 @@ public class CreateInstanceRequest extends AbstractDeltaCloudRequest {
> 	private String memory;
> 	private String storage;
> -	public CreateInstanceRequest(URL baseUrl, String imageId) {
> -		this(baseUrl, imageId, null, null, null, null, null, null);
> +	public CreateInstanceRequest(UrlMap urlMap, String imageId) {
> +		this(urlMap, imageId, null, null, null, null, null, null);
> 	}
> 	
> -	public CreateInstanceRequest(URL baseUrl, String imageId, String profileId, String realmId, String name,
> +	public CreateInstanceRequest(UrlMap urlMap, String imageId, String profileId, String realmId, String name,
> 			String keyname, String memory, String storage) {
> -		super(baseUrl, HttpMethod.POST);
> +		super(urlMap.get("instances"), HttpMethod.POST);
> 		this.imageId = imageId;
> 		this.profileId = profileId;
> 		this.realmId = realmId;
> @@ -45,7 +44,7 @@ public class CreateInstanceRequest extends AbstractDeltaCloudRequest {
> 	@Override
> 	protected String doCreateUrl(UrlBuilder urlBuilder) {
> -		urlBuilder.path("instances").parameter("image_id", imageId);
> +		urlBuilder.parameter("image_id", imageId);
> 		appendParameter("hwp_id", profileId, urlBuilder);
> 		appendParameter("realm_id", realmId, urlBuilder);
> 		appendParameter("name", name, urlBuilder);
> diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfileRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfileRequest.java
> index 077225d..6daf06d 100644
> --- a/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfileRequest.java
> +++ b/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfileRequest.java
> @@ -10,9 +10,8 @@
>  ******************************************************************************/
> package org.jboss.tools.deltacloud.core.client.request;
> -import java.net.URL;
> -
> import org.jboss.tools.deltacloud.core.client.utils.UrlBuilder;
> +import org.jboss.tools.deltacloud.core.client.utils.UrlMap;
> /**
> @@ -28,13 +27,13 @@ public class ListHardwareProfileRequest extends AbstractDeltaCloudRequest {
> 	 * @param baseUrl the base url
> 	 * @param imageId 
> 	 */
> -	public ListHardwareProfileRequest(URL baseUrl, String profileId) {
> -		super(baseUrl, HttpMethod.GET);
> +	public ListHardwareProfileRequest(UrlMap urlMap, String profileId) {
> +		super(urlMap.get("hardware_profiles"), HttpMethod.GET);
> 		this.profileId = profileId;
> 	}
> 	@Override
> 	protected String doCreateUrl(UrlBuilder urlBuilder) {
> -		return urlBuilder.path("hardware_profiles").path(profileId).toString();
> +		return urlBuilder.path(profileId).toString();
> 	}
> }
> diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfilesRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfilesRequest.java
> index 9992db5..89e3bc2 100644
> --- a/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfilesRequest.java
> +++ b/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfilesRequest.java
> @@ -10,7 +10,7 @@
>  ******************************************************************************/
> package org.jboss.tools.deltacloud.core.client.request;
> -import java.net.URL;
> +import org.jboss.tools.deltacloud.core.client.utils.UrlMap;
> /**
> @@ -18,7 +18,7 @@ import java.net.URL;
>  */
> public class ListHardwareProfilesRequest extends AbstractListObjectsRequest {
> 	
> -	public ListHardwareProfilesRequest(URL baseUrl) {
> -		super(baseUrl, "hardware_profiles");
> +	public ListHardwareProfilesRequest(UrlMap urlMap) {
> +		super(urlMap.get("hardware_profiles"));
> 	}
> }
> diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListImageRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListImageRequest.java
> index 391645c..a246270 100644
> --- a/src/org/jboss/tools/deltacloud/core/client/request/ListImageRequest.java
> +++ b/src/org/jboss/tools/deltacloud/core/client/request/ListImageRequest.java
> @@ -10,9 +10,8 @@
>  ******************************************************************************/
> package org.jboss.tools.deltacloud.core.client.request;
> -import java.net.URL;
> -
> import org.jboss.tools.deltacloud.core.client.utils.UrlBuilder;
> +import org.jboss.tools.deltacloud.core.client.utils.UrlMap;
> /**
> @@ -22,13 +21,13 @@ public class ListImageRequest extends AbstractDeltaCloudRequest {
> 	
> 	private String imageId;
> -	public ListImageRequest(URL baseUrl, String imageId) {
> -		super(baseUrl, HttpMethod.GET);
> +	public ListImageRequest(UrlMap urlMap, String imageId) {
> +		super(urlMap.get("images"), HttpMethod.GET);
> 		this.imageId = imageId;
> 	}
> 	@Override
> 	protected String doCreateUrl(UrlBuilder urlBuilder) {
> -		return urlBuilder.path("images").path(imageId).toString();
> +		return urlBuilder.path(imageId).toString();
> 	}
> }
> diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListImagesRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListImagesRequest.java
> index a7438af..3a62c29 100644
> --- a/src/org/jboss/tools/deltacloud/core/client/request/ListImagesRequest.java
> +++ b/src/org/jboss/tools/deltacloud/core/client/request/ListImagesRequest.java
> @@ -10,7 +10,7 @@
>  ******************************************************************************/
> package org.jboss.tools.deltacloud.core.client.request;
> -import java.net.URL;
> +import org.jboss.tools.deltacloud.core.client.utils.UrlMap;
> /**
> @@ -18,7 +18,7 @@ import java.net.URL;
>  */
> public class ListImagesRequest extends AbstractListObjectsRequest {
> 	
> -	public ListImagesRequest(URL baseUrl) {
> -		super(baseUrl, "images");
> +	public ListImagesRequest(UrlMap urlMap) {
> +		super(urlMap.get("images"));
> 	}
> }
> diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListInstanceRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListInstanceRequest.java
> index 55a8d74..0bf9f44 100644
> --- a/src/org/jboss/tools/deltacloud/core/client/request/ListInstanceRequest.java
> +++ b/src/org/jboss/tools/deltacloud/core/client/request/ListInstanceRequest.java
> @@ -10,9 +10,8 @@
>  ******************************************************************************/
> package org.jboss.tools.deltacloud.core.client.request;
> -import java.net.URL;
> -
> import org.jboss.tools.deltacloud.core.client.utils.UrlBuilder;
> +import org.jboss.tools.deltacloud.core.client.utils.UrlMap;
> /**
> @@ -22,13 +21,13 @@ public class ListInstanceRequest extends AbstractDeltaCloudRequest {
> 	
> 	private String instanceId;
> -	public ListInstanceRequest(URL baseUrl, String instanceId) {
> -		super(baseUrl, HttpMethod.GET);
> +	public ListInstanceRequest(UrlMap urlMap, String instanceId) {
> +		super(urlMap.get("instances"), HttpMethod.GET);
> 		this.instanceId = instanceId;
> 	}
> 	@Override
> 	protected String doCreateUrl(UrlBuilder urlBuilder) {
> -		return urlBuilder.path("instances").path(instanceId).toString();
> +		return urlBuilder.path(instanceId).toString();
> 	}
> }
> diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListInstancesRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListInstancesRequest.java
> index b853940..bc4ab66 100644
> --- a/src/org/jboss/tools/deltacloud/core/client/request/ListInstancesRequest.java
> +++ b/src/org/jboss/tools/deltacloud/core/client/request/ListInstancesRequest.java
> @@ -10,7 +10,7 @@
>  ******************************************************************************/
> package org.jboss.tools.deltacloud.core.client.request;
> -import java.net.URL;
> +import org.jboss.tools.deltacloud.core.client.utils.UrlMap;
> /**
> @@ -18,7 +18,7 @@ import java.net.URL;
>  */
> public class ListInstancesRequest extends AbstractListObjectsRequest {
> 	
> -	public ListInstancesRequest(URL baseUrl) {
> -		super(baseUrl, "instances");
> +	public ListInstancesRequest(UrlMap urlMap) {
> +		super(urlMap.get("instances"));
> 	}
> }
> diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListRealmRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListRealmRequest.java
> index 03209c2..9d251eb 100644
> --- a/src/org/jboss/tools/deltacloud/core/client/request/ListRealmRequest.java
> +++ b/src/org/jboss/tools/deltacloud/core/client/request/ListRealmRequest.java
> @@ -10,9 +10,8 @@
>  ******************************************************************************/
> package org.jboss.tools.deltacloud.core.client.request;
> -import java.net.URL;
> -
> import org.jboss.tools.deltacloud.core.client.utils.UrlBuilder;
> +import org.jboss.tools.deltacloud.core.client.utils.UrlMap;
> /**
> @@ -22,13 +21,13 @@ public class ListRealmRequest extends AbstractDeltaCloudRequest {
> 	
> 	private String realmId;
> -	public ListRealmRequest(URL baseUrl, String realmId) {
> -		super(baseUrl, HttpMethod.GET);
> +	public ListRealmRequest(UrlMap urlMap, String realmId) {
> +		super(urlMap.get("realms"), HttpMethod.GET);
> 		this.realmId = realmId;
> 	}
> 	@Override
> 	protected String doCreateUrl(UrlBuilder urlBuilder) {
> -		return urlBuilder.path("realms").path(realmId).toString();
> +		return urlBuilder.path(realmId).toString();
> 	}
> }
> diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListRealmsRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListRealmsRequest.java
> index 4bfb8ef..785e2d8 100644
> --- a/src/org/jboss/tools/deltacloud/core/client/request/ListRealmsRequest.java
> +++ b/src/org/jboss/tools/deltacloud/core/client/request/ListRealmsRequest.java
> @@ -10,7 +10,7 @@
>  ******************************************************************************/
> package org.jboss.tools.deltacloud.core.client.request;
> -import java.net.URL;
> +import org.jboss.tools.deltacloud.core.client.utils.UrlMap;
> /**
> @@ -18,7 +18,7 @@ import java.net.URL;
>  */
> public class ListRealmsRequest extends AbstractListObjectsRequest {
> 	
> -	public ListRealmsRequest(URL baseUrl) {
> -		super(baseUrl, "realms");
> +	public ListRealmsRequest(UrlMap urlMap) {
> +		super(urlMap.get("realms"));
> 	}
> }
> diff --git a/src/org/jboss/tools/deltacloud/core/client/utils/UrlMap.java b/src/org/jboss/tools/deltacloud/core/client/utils/UrlMap.java
> new file mode 100644
> index 0000000..d0b4de0
> --- /dev/null
> +++ b/src/org/jboss/tools/deltacloud/core/client/utils/UrlMap.java
> @@ -0,0 +1,19 @@
> +/*******************************************************************************
> + * Copyright (c) 2010 Red Hat, Inc.
> + * Distributed under license by Red Hat, Inc. All rights reserved.
> + * This program is made available under the terms of the
> + * Eclipse Public License v1.0 which accompanies this distribution,
> + * and is available at http://www.eclipse.org/legal/epl-v10.html
> + *
> + * Contributors:
> + *     Red Hat, Inc. - initial API and implementation
> + ******************************************************************************/
> +
> +package org.jboss.tools.deltacloud.core.client.utils;
> +
> +import java.net.URL;
> +import java.util.HashMap;
> +
> +public class UrlMap extends HashMap<String, URL> {
> +
> +}
> -- 
> 1.7.2.1

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbosstools-issues mailing list